type
  ImGuiWindowFlags_ = Integer;
  PImGuiWindowFlags_ = ^ImGuiWindowFlags_;

const
  ImGuiWindowFlags_None = 0;
  ImGuiWindowFlags_NoTitleBar = 1;
  ImGuiWindowFlags_NoResize = 2;
  ImGuiWindowFlags_NoMove = 4;
  ImGuiWindowFlags_NoScrollbar = 8;
  ImGuiWindowFlags_NoScrollWithMouse = 16;
  ImGuiWindowFlags_NoCollapse = 32;
  ImGuiWindowFlags_AlwaysAutoResize = 64;
  ImGuiWindowFlags_NoBackground = 128;
  ImGuiWindowFlags_NoSavedSettings = 256;
  ImGuiWindowFlags_NoMouseInputs = 512;
  ImGuiWindowFlags_MenuBar = 1024;
  ImGuiWindowFlags_HorizontalScrollbar = 2048;
  ImGuiWindowFlags_NoFocusOnAppearing = 4096;
  ImGuiWindowFlags_NoBringToFrontOnFocus = 8192;
  ImGuiWindowFlags_AlwaysVerticalScrollbar = 16384;
  ImGuiWindowFlags_AlwaysHorizontalScrollbar = 32768;
  ImGuiWindowFlags_NoNavInputs = 65536;
  ImGuiWindowFlags_NoNavFocus = 131072;
  ImGuiWindowFlags_UnsavedDocument = 262144;
  ImGuiWindowFlags_NoDocking = 524288;
  ImGuiWindowFlags_NoNav = 196608;
  ImGuiWindowFlags_NoDecoration = 43;
  ImGuiWindowFlags_NoInputs = 197120;
  ImGuiWindowFlags_ChildWindow = 16777216;
  ImGuiWindowFlags_Tooltip = 33554432;
  ImGuiWindowFlags_Popup = 67108864;
  ImGuiWindowFlags_Modal = 134217728;
  ImGuiWindowFlags_ChildMenu = 268435456;
  ImGuiWindowFlags_DockNodeHost = 536870912;

type
  ImGuiChildFlags_ = Integer;
  PImGuiChildFlags_ = ^ImGuiChildFlags_;

const
  ImGuiChildFlags_None = 0;
  ImGuiChildFlags_Border = 1;
  ImGuiChildFlags_AlwaysUseWindowPadding = 2;
  ImGuiChildFlags_ResizeX = 4;
  ImGuiChildFlags_ResizeY = 8;
  ImGuiChildFlags_AutoResizeX = 16;
  ImGuiChildFlags_AutoResizeY = 32;
  ImGuiChildFlags_AlwaysAutoResize = 64;
  ImGuiChildFlags_FrameStyle = 128;
  ImGuiChildFlags_NavFlattened = 256;

type
  ImGuiItemFlags_ = Integer;
  PImGuiItemFlags_ = ^ImGuiItemFlags_;

const
  ImGuiItemFlags_None = 0;
  ImGuiItemFlags_NoTabStop = 1;
  ImGuiItemFlags_NoNav = 2;
  ImGuiItemFlags_NoNavDefaultFocus = 4;
  ImGuiItemFlags_ButtonRepeat = 8;
  ImGuiItemFlags_AutoClosePopups = 16;

type
  ImGuiInputTextFlags_ = Integer;
  PImGuiInputTextFlags_ = ^ImGuiInputTextFlags_;

const
  ImGuiInputTextFlags_None = 0;
  ImGuiInputTextFlags_CharsDecimal = 1;
  ImGuiInputTextFlags_CharsHexadecimal = 2;
  ImGuiInputTextFlags_CharsScientific = 4;
  ImGuiInputTextFlags_CharsUppercase = 8;
  ImGuiInputTextFlags_CharsNoBlank = 16;
  ImGuiInputTextFlags_AllowTabInput = 32;
  ImGuiInputTextFlags_EnterReturnsTrue = 64;
  ImGuiInputTextFlags_EscapeClearsAll = 128;
  ImGuiInputTextFlags_CtrlEnterForNewLine = 256;
  ImGuiInputTextFlags_ReadOnly = 512;
  ImGuiInputTextFlags_Password = 1024;
  ImGuiInputTextFlags_AlwaysOverwrite = 2048;
  ImGuiInputTextFlags_AutoSelectAll = 4096;
  ImGuiInputTextFlags_ParseEmptyRefVal = 8192;
  ImGuiInputTextFlags_DisplayEmptyRefVal = 16384;
  ImGuiInputTextFlags_NoHorizontalScroll = 32768;
  ImGuiInputTextFlags_NoUndoRedo = 65536;
  ImGuiInputTextFlags_CallbackCompletion = 131072;
  ImGuiInputTextFlags_CallbackHistory = 262144;
  ImGuiInputTextFlags_CallbackAlways = 524288;
  ImGuiInputTextFlags_CallbackCharFilter = 1048576;
  ImGuiInputTextFlags_CallbackResize = 2097152;
  ImGuiInputTextFlags_CallbackEdit = 4194304;

type
  ImGuiTreeNodeFlags_ = Integer;
  PImGuiTreeNodeFlags_ = ^ImGuiTreeNodeFlags_;

const
  ImGuiTreeNodeFlags_None = 0;
  ImGuiTreeNodeFlags_Selected = 1;
  ImGuiTreeNodeFlags_Framed = 2;
  ImGuiTreeNodeFlags_AllowOverlap = 4;
  ImGuiTreeNodeFlags_NoTreePushOnOpen = 8;
  ImGuiTreeNodeFlags_NoAutoOpenOnLog = 16;
  ImGuiTreeNodeFlags_DefaultOpen = 32;
  ImGuiTreeNodeFlags_OpenOnDoubleClick = 64;
  ImGuiTreeNodeFlags_OpenOnArrow = 128;
  ImGuiTreeNodeFlags_Leaf = 256;
  ImGuiTreeNodeFlags_Bullet = 512;
  ImGuiTreeNodeFlags_FramePadding = 1024;
  ImGuiTreeNodeFlags_SpanAvailWidth = 2048;
  ImGuiTreeNodeFlags_SpanFullWidth = 4096;
  ImGuiTreeNodeFlags_SpanTextWidth = 8192;
  ImGuiTreeNodeFlags_SpanAllColumns = 16384;
  ImGuiTreeNodeFlags_NavLeftJumpsBackHere = 32768;
  ImGuiTreeNodeFlags_CollapsingHeader = 26;

type
  ImGuiPopupFlags_ = Integer;
  PImGuiPopupFlags_ = ^ImGuiPopupFlags_;

const
  ImGuiPopupFlags_None = 0;
  ImGuiPopupFlags_MouseButtonLeft = 0;
  ImGuiPopupFlags_MouseButtonRight = 1;
  ImGuiPopupFlags_MouseButtonMiddle = 2;
  ImGuiPopupFlags_MouseButtonMask_ = 31;
  ImGuiPopupFlags_MouseButtonDefault_ = 1;
  ImGuiPopupFlags_NoReopen = 32;
  ImGuiPopupFlags_NoOpenOverExistingPopup = 128;
  ImGuiPopupFlags_NoOpenOverItems = 256;
  ImGuiPopupFlags_AnyPopupId = 1024;
  ImGuiPopupFlags_AnyPopupLevel = 2048;
  ImGuiPopupFlags_AnyPopup = 3072;

type
  ImGuiSelectableFlags_ = Integer;
  PImGuiSelectableFlags_ = ^ImGuiSelectableFlags_;

const
  ImGuiSelectableFlags_None = 0;
  ImGuiSelectableFlags_NoAutoClosePopups = 1;
  ImGuiSelectableFlags_SpanAllColumns = 2;
  ImGuiSelectableFlags_AllowDoubleClick = 4;
  ImGuiSelectableFlags_Disabled = 8;
  ImGuiSelectableFlags_AllowOverlap = 16;
  ImGuiSelectableFlags_Highlight = 32;

type
  ImGuiComboFlags_ = Integer;
  PImGuiComboFlags_ = ^ImGuiComboFlags_;

const
  ImGuiComboFlags_None = 0;
  ImGuiComboFlags_PopupAlignLeft = 1;
  ImGuiComboFlags_HeightSmall = 2;
  ImGuiComboFlags_HeightRegular = 4;
  ImGuiComboFlags_HeightLarge = 8;
  ImGuiComboFlags_HeightLargest = 16;
  ImGuiComboFlags_NoArrowButton = 32;
  ImGuiComboFlags_NoPreview = 64;
  ImGuiComboFlags_WidthFitPreview = 128;
  ImGuiComboFlags_HeightMask_ = 30;

type
  ImGuiTabBarFlags_ = Integer;
  PImGuiTabBarFlags_ = ^ImGuiTabBarFlags_;

const
  ImGuiTabBarFlags_None = 0;
  ImGuiTabBarFlags_Reorderable = 1;
  ImGuiTabBarFlags_AutoSelectNewTabs = 2;
  ImGuiTabBarFlags_TabListPopupButton = 4;
  ImGuiTabBarFlags_NoCloseWithMiddleMouseButton = 8;
  ImGuiTabBarFlags_NoTabListScrollingButtons = 16;
  ImGuiTabBarFlags_NoTooltip = 32;
  ImGuiTabBarFlags_DrawSelectedOverline = 64;
  ImGuiTabBarFlags_FittingPolicyResizeDown = 128;
  ImGuiTabBarFlags_FittingPolicyScroll = 256;
  ImGuiTabBarFlags_FittingPolicyMask_ = 384;
  ImGuiTabBarFlags_FittingPolicyDefault_ = 128;

type
  ImGuiTabItemFlags_ = Integer;
  PImGuiTabItemFlags_ = ^ImGuiTabItemFlags_;

const
  ImGuiTabItemFlags_None = 0;
  ImGuiTabItemFlags_UnsavedDocument = 1;
  ImGuiTabItemFlags_SetSelected = 2;
  ImGuiTabItemFlags_NoCloseWithMiddleMouseButton = 4;
  ImGuiTabItemFlags_NoPushId = 8;
  ImGuiTabItemFlags_NoTooltip = 16;
  ImGuiTabItemFlags_NoReorder = 32;
  ImGuiTabItemFlags_Leading = 64;
  ImGuiTabItemFlags_Trailing = 128;
  ImGuiTabItemFlags_NoAssumedClosure = 256;

type
  ImGuiFocusedFlags_ = Integer;
  PImGuiFocusedFlags_ = ^ImGuiFocusedFlags_;

const
  ImGuiFocusedFlags_None = 0;
  ImGuiFocusedFlags_ChildWindows = 1;
  ImGuiFocusedFlags_RootWindow = 2;
  ImGuiFocusedFlags_AnyWindow = 4;
  ImGuiFocusedFlags_NoPopupHierarchy = 8;
  ImGuiFocusedFlags_DockHierarchy = 16;
  ImGuiFocusedFlags_RootAndChildWindows = 3;

type
  ImGuiHoveredFlags_ = Integer;
  PImGuiHoveredFlags_ = ^ImGuiHoveredFlags_;

const
  ImGuiHoveredFlags_None = 0;
  ImGuiHoveredFlags_ChildWindows = 1;
  ImGuiHoveredFlags_RootWindow = 2;
  ImGuiHoveredFlags_AnyWindow = 4;
  ImGuiHoveredFlags_NoPopupHierarchy = 8;
  ImGuiHoveredFlags_DockHierarchy = 16;
  ImGuiHoveredFlags_AllowWhenBlockedByPopup = 32;
  ImGuiHoveredFlags_AllowWhenBlockedByActiveItem = 128;
  ImGuiHoveredFlags_AllowWhenOverlappedByItem = 256;
  ImGuiHoveredFlags_AllowWhenOverlappedByWindow = 512;
  ImGuiHoveredFlags_AllowWhenDisabled = 1024;
  ImGuiHoveredFlags_NoNavOverride = 2048;
  ImGuiHoveredFlags_AllowWhenOverlapped = 768;
  ImGuiHoveredFlags_RectOnly = 928;
  ImGuiHoveredFlags_RootAndChildWindows = 3;
  ImGuiHoveredFlags_ForTooltip = 4096;
  ImGuiHoveredFlags_Stationary = 8192;
  ImGuiHoveredFlags_DelayNone = 16384;
  ImGuiHoveredFlags_DelayShort = 32768;
  ImGuiHoveredFlags_DelayNormal = 65536;
  ImGuiHoveredFlags_NoSharedDelay = 131072;

type
  ImGuiDockNodeFlags_ = Integer;
  PImGuiDockNodeFlags_ = ^ImGuiDockNodeFlags_;

const
  ImGuiDockNodeFlags_None = 0;
  ImGuiDockNodeFlags_KeepAliveOnly = 1;
  ImGuiDockNodeFlags_NoDockingOverCentralNode = 4;
  ImGuiDockNodeFlags_PassthruCentralNode = 8;
  ImGuiDockNodeFlags_NoDockingSplit = 16;
  ImGuiDockNodeFlags_NoResize = 32;
  ImGuiDockNodeFlags_AutoHideTabBar = 64;
  ImGuiDockNodeFlags_NoUndocking = 128;

type
  ImGuiDragDropFlags_ = Integer;
  PImGuiDragDropFlags_ = ^ImGuiDragDropFlags_;

const
  ImGuiDragDropFlags_None = 0;
  ImGuiDragDropFlags_SourceNoPreviewTooltip = 1;
  ImGuiDragDropFlags_SourceNoDisableHover = 2;
  ImGuiDragDropFlags_SourceNoHoldToOpenOthers = 4;
  ImGuiDragDropFlags_SourceAllowNullID = 8;
  ImGuiDragDropFlags_SourceExtern = 16;
  ImGuiDragDropFlags_PayloadAutoExpire = 32;
  ImGuiDragDropFlags_PayloadNoCrossContext = 64;
  ImGuiDragDropFlags_PayloadNoCrossProcess = 128;
  ImGuiDragDropFlags_AcceptBeforeDelivery = 1024;
  ImGuiDragDropFlags_AcceptNoDrawDefaultRect = 2048;
  ImGuiDragDropFlags_AcceptNoPreviewTooltip = 4096;
  ImGuiDragDropFlags_AcceptPeekOnly = 3072;

type
  ImGuiDataType_ = Integer;
  PImGuiDataType_ = ^ImGuiDataType_;

const
  ImGuiDataType_S8 = 0;
  ImGuiDataType_U8 = 1;
  ImGuiDataType_S16 = 2;
  ImGuiDataType_U16 = 3;
  ImGuiDataType_S32 = 4;
  ImGuiDataType_U32 = 5;
  ImGuiDataType_S64 = 6;
  ImGuiDataType_U64 = 7;
  ImGuiDataType_Float = 8;
  ImGuiDataType_Double = 9;
  ImGuiDataType_Bool = 10;
  ImGuiDataType_COUNT = 11;

type
  ImGuiDir = Integer;
  PImGuiDir = ^ImGuiDir;

const
  ImGuiDir_None = -1;
  ImGuiDir_Left = 0;
  ImGuiDir_Right = 1;
  ImGuiDir_Up = 2;
  ImGuiDir_Down = 3;
  ImGuiDir_COUNT = 4;

type
  ImGuiSortDirection = Integer;
  PImGuiSortDirection = ^ImGuiSortDirection;

const
  ImGuiSortDirection_None = 0;
  ImGuiSortDirection_Ascending = 1;
  ImGuiSortDirection_Descending = 2;

type
  ImGuiKey = Integer;
  PImGuiKey = ^ImGuiKey;

const
  ImGuiKey_None = 0;
  ImGuiKey_Tab = 512;
  ImGuiKey_LeftArrow = 513;
  ImGuiKey_RightArrow = 514;
  ImGuiKey_UpArrow = 515;
  ImGuiKey_DownArrow = 516;
  ImGuiKey_PageUp = 517;
  ImGuiKey_PageDown = 518;
  ImGuiKey_Home = 519;
  ImGuiKey_End = 520;
  ImGuiKey_Insert = 521;
  ImGuiKey_Delete = 522;
  ImGuiKey_Backspace = 523;
  ImGuiKey_Space = 524;
  ImGuiKey_Enter = 525;
  ImGuiKey_Escape = 526;
  ImGuiKey_LeftCtrl = 527;
  ImGuiKey_LeftShift = 528;
  ImGuiKey_LeftAlt = 529;
  ImGuiKey_LeftSuper = 530;
  ImGuiKey_RightCtrl = 531;
  ImGuiKey_RightShift = 532;
  ImGuiKey_RightAlt = 533;
  ImGuiKey_RightSuper = 534;
  ImGuiKey_Menu = 535;
  ImGuiKey_0 = 536;
  ImGuiKey_1 = 537;
  ImGuiKey_2 = 538;
  ImGuiKey_3 = 539;
  ImGuiKey_4 = 540;
  ImGuiKey_5 = 541;
  ImGuiKey_6 = 542;
  ImGuiKey_7 = 543;
  ImGuiKey_8 = 544;
  ImGuiKey_9 = 545;
  ImGuiKey_A = 546;
  ImGuiKey_B = 547;
  ImGuiKey_C = 548;
  ImGuiKey_D = 549;
  ImGuiKey_E = 550;
  ImGuiKey_F = 551;
  ImGuiKey_G = 552;
  ImGuiKey_H = 553;
  ImGuiKey_I = 554;
  ImGuiKey_J = 555;
  ImGuiKey_K = 556;
  ImGuiKey_L = 557;
  ImGuiKey_M = 558;
  ImGuiKey_N = 559;
  ImGuiKey_O = 560;
  ImGuiKey_P = 561;
  ImGuiKey_Q = 562;
  ImGuiKey_R = 563;
  ImGuiKey_S = 564;
  ImGuiKey_T = 565;
  ImGuiKey_U = 566;
  ImGuiKey_V = 567;
  ImGuiKey_W = 568;
  ImGuiKey_X = 569;
  ImGuiKey_Y = 570;
  ImGuiKey_Z = 571;
  ImGuiKey_F1 = 572;
  ImGuiKey_F2 = 573;
  ImGuiKey_F3 = 574;
  ImGuiKey_F4 = 575;
  ImGuiKey_F5 = 576;
  ImGuiKey_F6 = 577;
  ImGuiKey_F7 = 578;
  ImGuiKey_F8 = 579;
  ImGuiKey_F9 = 580;
  ImGuiKey_F10 = 581;
  ImGuiKey_F11 = 582;
  ImGuiKey_F12 = 583;
  ImGuiKey_F13 = 584;
  ImGuiKey_F14 = 585;
  ImGuiKey_F15 = 586;
  ImGuiKey_F16 = 587;
  ImGuiKey_F17 = 588;
  ImGuiKey_F18 = 589;
  ImGuiKey_F19 = 590;
  ImGuiKey_F20 = 591;
  ImGuiKey_F21 = 592;
  ImGuiKey_F22 = 593;
  ImGuiKey_F23 = 594;
  ImGuiKey_F24 = 595;
  ImGuiKey_Apostrophe = 596;
  ImGuiKey_Comma = 597;
  ImGuiKey_Minus = 598;
  ImGuiKey_Period = 599;
  ImGuiKey_Slash = 600;
  ImGuiKey_Semicolon = 601;
  ImGuiKey_Equal = 602;
  ImGuiKey_LeftBracket = 603;
  ImGuiKey_Backslash = 604;
  ImGuiKey_RightBracket = 605;
  ImGuiKey_GraveAccent = 606;
  ImGuiKey_CapsLock = 607;
  ImGuiKey_ScrollLock = 608;
  ImGuiKey_NumLock = 609;
  ImGuiKey_PrintScreen = 610;
  ImGuiKey_Pause = 611;
  ImGuiKey_Keypad0 = 612;
  ImGuiKey_Keypad1 = 613;
  ImGuiKey_Keypad2 = 614;
  ImGuiKey_Keypad3 = 615;
  ImGuiKey_Keypad4 = 616;
  ImGuiKey_Keypad5 = 617;
  ImGuiKey_Keypad6 = 618;
  ImGuiKey_Keypad7 = 619;
  ImGuiKey_Keypad8 = 620;
  ImGuiKey_Keypad9 = 621;
  ImGuiKey_KeypadDecimal = 622;
  ImGuiKey_KeypadDivide = 623;
  ImGuiKey_KeypadMultiply = 624;
  ImGuiKey_KeypadSubtract = 625;
  ImGuiKey_KeypadAdd = 626;
  ImGuiKey_KeypadEnter = 627;
  ImGuiKey_KeypadEqual = 628;
  ImGuiKey_AppBack = 629;
  ImGuiKey_AppForward = 630;
  ImGuiKey_GamepadStart = 631;
  ImGuiKey_GamepadBack = 632;
  ImGuiKey_GamepadFaceLeft = 633;
  ImGuiKey_GamepadFaceRight = 634;
  ImGuiKey_GamepadFaceUp = 635;
  ImGuiKey_GamepadFaceDown = 636;
  ImGuiKey_GamepadDpadLeft = 637;
  ImGuiKey_GamepadDpadRight = 638;
  ImGuiKey_GamepadDpadUp = 639;
  ImGuiKey_GamepadDpadDown = 640;
  ImGuiKey_GamepadL1 = 641;
  ImGuiKey_GamepadR1 = 642;
  ImGuiKey_GamepadL2 = 643;
  ImGuiKey_GamepadR2 = 644;
  ImGuiKey_GamepadL3 = 645;
  ImGuiKey_GamepadR3 = 646;
  ImGuiKey_GamepadLStickLeft = 647;
  ImGuiKey_GamepadLStickRight = 648;
  ImGuiKey_GamepadLStickUp = 649;
  ImGuiKey_GamepadLStickDown = 650;
  ImGuiKey_GamepadRStickLeft = 651;
  ImGuiKey_GamepadRStickRight = 652;
  ImGuiKey_GamepadRStickUp = 653;
  ImGuiKey_GamepadRStickDown = 654;
  ImGuiKey_MouseLeft = 655;
  ImGuiKey_MouseRight = 656;
  ImGuiKey_MouseMiddle = 657;
  ImGuiKey_MouseX1 = 658;
  ImGuiKey_MouseX2 = 659;
  ImGuiKey_MouseWheelX = 660;
  ImGuiKey_MouseWheelY = 661;
  ImGuiKey_ReservedForModCtrl = 662;
  ImGuiKey_ReservedForModShift = 663;
  ImGuiKey_ReservedForModAlt = 664;
  ImGuiKey_ReservedForModSuper = 665;
  ImGuiKey_COUNT = 666;
  ImGuiMod_None = 0;
  ImGuiMod_Ctrl = 4096;
  ImGuiMod_Shift = 8192;
  ImGuiMod_Alt = 16384;
  ImGuiMod_Super = 32768;
  ImGuiMod_Mask_ = 61440;
  ImGuiKey_NamedKey_BEGIN = 512;
  ImGuiKey_NamedKey_END = 666;
  ImGuiKey_NamedKey_COUNT = 154;
  ImGuiKey_KeysData_SIZE = 154;
  ImGuiKey_KeysData_OFFSET = 512;

type
  ImGuiInputFlags_ = Integer;
  PImGuiInputFlags_ = ^ImGuiInputFlags_;

const
  ImGuiInputFlags_None = 0;
  ImGuiInputFlags_Repeat = 1;
  ImGuiInputFlags_RouteActive = 1024;
  ImGuiInputFlags_RouteFocused = 2048;
  ImGuiInputFlags_RouteGlobal = 4096;
  ImGuiInputFlags_RouteAlways = 8192;
  ImGuiInputFlags_RouteOverFocused = 16384;
  ImGuiInputFlags_RouteOverActive = 32768;
  ImGuiInputFlags_RouteUnlessBgFocused = 65536;
  ImGuiInputFlags_RouteFromRootWindow = 131072;
  ImGuiInputFlags_Tooltip = 262144;

type
  ImGuiConfigFlags_ = Integer;
  PImGuiConfigFlags_ = ^ImGuiConfigFlags_;

const
  ImGuiConfigFlags_None = 0;
  ImGuiConfigFlags_NavEnableKeyboard = 1;
  ImGuiConfigFlags_NavEnableGamepad = 2;
  ImGuiConfigFlags_NavEnableSetMousePos = 4;
  ImGuiConfigFlags_NavNoCaptureKeyboard = 8;
  ImGuiConfigFlags_NoMouse = 16;
  ImGuiConfigFlags_NoMouseCursorChange = 32;
  ImGuiConfigFlags_NoKeyboard = 64;
  ImGuiConfigFlags_DockingEnable = 128;
  ImGuiConfigFlags_ViewportsEnable = 1024;
  ImGuiConfigFlags_DpiEnableScaleViewports = 16384;
  ImGuiConfigFlags_DpiEnableScaleFonts = 32768;
  ImGuiConfigFlags_IsSRGB = 1048576;
  ImGuiConfigFlags_IsTouchScreen = 2097152;

type
  ImGuiBackendFlags_ = Integer;
  PImGuiBackendFlags_ = ^ImGuiBackendFlags_;

const
  ImGuiBackendFlags_None = 0;
  ImGuiBackendFlags_HasGamepad = 1;
  ImGuiBackendFlags_HasMouseCursors = 2;
  ImGuiBackendFlags_HasSetMousePos = 4;
  ImGuiBackendFlags_RendererHasVtxOffset = 8;
  ImGuiBackendFlags_PlatformHasViewports = 1024;
  ImGuiBackendFlags_HasMouseHoveredViewport = 2048;
  ImGuiBackendFlags_RendererHasViewports = 4096;

type
  ImGuiCol_ = Integer;
  PImGuiCol_ = ^ImGuiCol_;

const
  ImGuiCol_Text = 0;
  ImGuiCol_TextDisabled = 1;
  ImGuiCol_WindowBg = 2;
  ImGuiCol_ChildBg = 3;
  ImGuiCol_PopupBg = 4;
  ImGuiCol_Border = 5;
  ImGuiCol_BorderShadow = 6;
  ImGuiCol_FrameBg = 7;
  ImGuiCol_FrameBgHovered = 8;
  ImGuiCol_FrameBgActive = 9;
  ImGuiCol_TitleBg = 10;
  ImGuiCol_TitleBgActive = 11;
  ImGuiCol_TitleBgCollapsed = 12;
  ImGuiCol_MenuBarBg = 13;
  ImGuiCol_ScrollbarBg = 14;
  ImGuiCol_ScrollbarGrab = 15;
  ImGuiCol_ScrollbarGrabHovered = 16;
  ImGuiCol_ScrollbarGrabActive = 17;
  ImGuiCol_CheckMark = 18;
  ImGuiCol_SliderGrab = 19;
  ImGuiCol_SliderGrabActive = 20;
  ImGuiCol_Button = 21;
  ImGuiCol_ButtonHovered = 22;
  ImGuiCol_ButtonActive = 23;
  ImGuiCol_Header = 24;
  ImGuiCol_HeaderHovered = 25;
  ImGuiCol_HeaderActive = 26;
  ImGuiCol_Separator = 27;
  ImGuiCol_SeparatorHovered = 28;
  ImGuiCol_SeparatorActive = 29;
  ImGuiCol_ResizeGrip = 30;
  ImGuiCol_ResizeGripHovered = 31;
  ImGuiCol_ResizeGripActive = 32;
  ImGuiCol_TabHovered = 33;
  ImGuiCol_Tab = 34;
  ImGuiCol_TabSelected = 35;
  ImGuiCol_TabSelectedOverline = 36;
  ImGuiCol_TabDimmed = 37;
  ImGuiCol_TabDimmedSelected = 38;
  ImGuiCol_TabDimmedSelectedOverline = 39;
  ImGuiCol_DockingPreview = 40;
  ImGuiCol_DockingEmptyBg = 41;
  ImGuiCol_PlotLines = 42;
  ImGuiCol_PlotLinesHovered = 43;
  ImGuiCol_PlotHistogram = 44;
  ImGuiCol_PlotHistogramHovered = 45;
  ImGuiCol_TableHeaderBg = 46;
  ImGuiCol_TableBorderStrong = 47;
  ImGuiCol_TableBorderLight = 48;
  ImGuiCol_TableRowBg = 49;
  ImGuiCol_TableRowBgAlt = 50;
  ImGuiCol_TextLink = 51;
  ImGuiCol_TextSelectedBg = 52;
  ImGuiCol_DragDropTarget = 53;
  ImGuiCol_NavHighlight = 54;
  ImGuiCol_NavWindowingHighlight = 55;
  ImGuiCol_NavWindowingDimBg = 56;
  ImGuiCol_ModalWindowDimBg = 57;
  ImGuiCol_COUNT = 58;

type
  ImGuiStyleVar_ = Integer;
  PImGuiStyleVar_ = ^ImGuiStyleVar_;

const
  ImGuiStyleVar_Alpha = 0;
  ImGuiStyleVar_DisabledAlpha = 1;
  ImGuiStyleVar_WindowPadding = 2;
  ImGuiStyleVar_WindowRounding = 3;
  ImGuiStyleVar_WindowBorderSize = 4;
  ImGuiStyleVar_WindowMinSize = 5;
  ImGuiStyleVar_WindowTitleAlign = 6;
  ImGuiStyleVar_ChildRounding = 7;
  ImGuiStyleVar_ChildBorderSize = 8;
  ImGuiStyleVar_PopupRounding = 9;
  ImGuiStyleVar_PopupBorderSize = 10;
  ImGuiStyleVar_FramePadding = 11;
  ImGuiStyleVar_FrameRounding = 12;
  ImGuiStyleVar_FrameBorderSize = 13;
  ImGuiStyleVar_ItemSpacing = 14;
  ImGuiStyleVar_ItemInnerSpacing = 15;
  ImGuiStyleVar_IndentSpacing = 16;
  ImGuiStyleVar_CellPadding = 17;
  ImGuiStyleVar_ScrollbarSize = 18;
  ImGuiStyleVar_ScrollbarRounding = 19;
  ImGuiStyleVar_GrabMinSize = 20;
  ImGuiStyleVar_GrabRounding = 21;
  ImGuiStyleVar_TabRounding = 22;
  ImGuiStyleVar_TabBorderSize = 23;
  ImGuiStyleVar_TabBarBorderSize = 24;
  ImGuiStyleVar_TabBarOverlineSize = 25;
  ImGuiStyleVar_TableAngledHeadersAngle = 26;
  ImGuiStyleVar_TableAngledHeadersTextAlign = 27;
  ImGuiStyleVar_ButtonTextAlign = 28;
  ImGuiStyleVar_SelectableTextAlign = 29;
  ImGuiStyleVar_SeparatorTextBorderSize = 30;
  ImGuiStyleVar_SeparatorTextAlign = 31;
  ImGuiStyleVar_SeparatorTextPadding = 32;
  ImGuiStyleVar_DockingSeparatorSize = 33;
  ImGuiStyleVar_COUNT = 34;

type
  ImGuiButtonFlags_ = Integer;
  PImGuiButtonFlags_ = ^ImGuiButtonFlags_;

const
  ImGuiButtonFlags_None = 0;
  ImGuiButtonFlags_MouseButtonLeft = 1;
  ImGuiButtonFlags_MouseButtonRight = 2;
  ImGuiButtonFlags_MouseButtonMiddle = 4;
  ImGuiButtonFlags_MouseButtonMask_ = 7;

type
  ImGuiColorEditFlags_ = Integer;
  PImGuiColorEditFlags_ = ^ImGuiColorEditFlags_;

const
  ImGuiColorEditFlags_None = 0;
  ImGuiColorEditFlags_NoAlpha = 2;
  ImGuiColorEditFlags_NoPicker = 4;
  ImGuiColorEditFlags_NoOptions = 8;
  ImGuiColorEditFlags_NoSmallPreview = 16;
  ImGuiColorEditFlags_NoInputs = 32;
  ImGuiColorEditFlags_NoTooltip = 64;
  ImGuiColorEditFlags_NoLabel = 128;
  ImGuiColorEditFlags_NoSidePreview = 256;
  ImGuiColorEditFlags_NoDragDrop = 512;
  ImGuiColorEditFlags_NoBorder = 1024;
  ImGuiColorEditFlags_AlphaBar = 65536;
  ImGuiColorEditFlags_AlphaPreview = 131072;
  ImGuiColorEditFlags_AlphaPreviewHalf = 262144;
  ImGuiColorEditFlags_HDR = 524288;
  ImGuiColorEditFlags_DisplayRGB = 1048576;
  ImGuiColorEditFlags_DisplayHSV = 2097152;
  ImGuiColorEditFlags_DisplayHex = 4194304;
  ImGuiColorEditFlags_Uint8 = 8388608;
  ImGuiColorEditFlags_Float = 16777216;
  ImGuiColorEditFlags_PickerHueBar = 33554432;
  ImGuiColorEditFlags_PickerHueWheel = 67108864;
  ImGuiColorEditFlags_InputRGB = 134217728;
  ImGuiColorEditFlags_InputHSV = 268435456;
  ImGuiColorEditFlags_DefaultOptions_ = 177209344;
  ImGuiColorEditFlags_DisplayMask_ = 7340032;
  ImGuiColorEditFlags_DataTypeMask_ = 25165824;
  ImGuiColorEditFlags_PickerMask_ = 100663296;
  ImGuiColorEditFlags_InputMask_ = 402653184;

type
  ImGuiSliderFlags_ = Integer;
  PImGuiSliderFlags_ = ^ImGuiSliderFlags_;

const
  ImGuiSliderFlags_None = 0;
  ImGuiSliderFlags_AlwaysClamp = 16;
  ImGuiSliderFlags_Logarithmic = 32;
  ImGuiSliderFlags_NoRoundToFormat = 64;
  ImGuiSliderFlags_NoInput = 128;
  ImGuiSliderFlags_WrapAround = 256;
  ImGuiSliderFlags_InvalidMask_ = 1879048207;

type
  ImGuiMouseButton_ = Integer;
  PImGuiMouseButton_ = ^ImGuiMouseButton_;

const
  ImGuiMouseButton_Left = 0;
  ImGuiMouseButton_Right = 1;
  ImGuiMouseButton_Middle = 2;
  ImGuiMouseButton_COUNT = 5;

type
  ImGuiMouseCursor_ = Integer;
  PImGuiMouseCursor_ = ^ImGuiMouseCursor_;

const
  ImGuiMouseCursor_None = -1;
  ImGuiMouseCursor_Arrow = 0;
  ImGuiMouseCursor_TextInput = 1;
  ImGuiMouseCursor_ResizeAll = 2;
  ImGuiMouseCursor_ResizeNS = 3;
  ImGuiMouseCursor_ResizeEW = 4;
  ImGuiMouseCursor_ResizeNESW = 5;
  ImGuiMouseCursor_ResizeNWSE = 6;
  ImGuiMouseCursor_Hand = 7;
  ImGuiMouseCursor_NotAllowed = 8;
  ImGuiMouseCursor_COUNT = 9;

type
  ImGuiMouseSource = Integer;
  PImGuiMouseSource = ^ImGuiMouseSource;

const
  ImGuiMouseSource_Mouse = 0;
  ImGuiMouseSource_TouchScreen = 1;
  ImGuiMouseSource_Pen = 2;
  ImGuiMouseSource_COUNT = 3;

type
  ImGuiCond_ = Integer;
  PImGuiCond_ = ^ImGuiCond_;

const
  ImGuiCond_None = 0;
  ImGuiCond_Always = 1;
  ImGuiCond_Once = 2;
  ImGuiCond_FirstUseEver = 4;
  ImGuiCond_Appearing = 8;

type
  ImGuiTableFlags_ = Integer;
  PImGuiTableFlags_ = ^ImGuiTableFlags_;

const
  ImGuiTableFlags_None = 0;
  ImGuiTableFlags_Resizable = 1;
  ImGuiTableFlags_Reorderable = 2;
  ImGuiTableFlags_Hideable = 4;
  ImGuiTableFlags_Sortable = 8;
  ImGuiTableFlags_NoSavedSettings = 16;
  ImGuiTableFlags_ContextMenuInBody = 32;
  ImGuiTableFlags_RowBg = 64;
  ImGuiTableFlags_BordersInnerH = 128;
  ImGuiTableFlags_BordersOuterH = 256;
  ImGuiTableFlags_BordersInnerV = 512;
  ImGuiTableFlags_BordersOuterV = 1024;
  ImGuiTableFlags_BordersH = 384;
  ImGuiTableFlags_BordersV = 1536;
  ImGuiTableFlags_BordersInner = 640;
  ImGuiTableFlags_BordersOuter = 1280;
  ImGuiTableFlags_Borders = 1920;
  ImGuiTableFlags_NoBordersInBody = 2048;
  ImGuiTableFlags_NoBordersInBodyUntilResize = 4096;
  ImGuiTableFlags_SizingFixedFit = 8192;
  ImGuiTableFlags_SizingFixedSame = 16384;
  ImGuiTableFlags_SizingStretchProp = 24576;
  ImGuiTableFlags_SizingStretchSame = 32768;
  ImGuiTableFlags_NoHostExtendX = 65536;
  ImGuiTableFlags_NoHostExtendY = 131072;
  ImGuiTableFlags_NoKeepColumnsVisible = 262144;
  ImGuiTableFlags_PreciseWidths = 524288;
  ImGuiTableFlags_NoClip = 1048576;
  ImGuiTableFlags_PadOuterX = 2097152;
  ImGuiTableFlags_NoPadOuterX = 4194304;
  ImGuiTableFlags_NoPadInnerX = 8388608;
  ImGuiTableFlags_ScrollX = 16777216;
  ImGuiTableFlags_ScrollY = 33554432;
  ImGuiTableFlags_SortMulti = 67108864;
  ImGuiTableFlags_SortTristate = 134217728;
  ImGuiTableFlags_HighlightHoveredColumn = 268435456;
  ImGuiTableFlags_SizingMask_ = 57344;

type
  ImGuiTableColumnFlags_ = Integer;
  PImGuiTableColumnFlags_ = ^ImGuiTableColumnFlags_;

const
  ImGuiTableColumnFlags_None = 0;
  ImGuiTableColumnFlags_Disabled = 1;
  ImGuiTableColumnFlags_DefaultHide = 2;
  ImGuiTableColumnFlags_DefaultSort = 4;
  ImGuiTableColumnFlags_WidthStretch = 8;
  ImGuiTableColumnFlags_WidthFixed = 16;
  ImGuiTableColumnFlags_NoResize = 32;
  ImGuiTableColumnFlags_NoReorder = 64;
  ImGuiTableColumnFlags_NoHide = 128;
  ImGuiTableColumnFlags_NoClip = 256;
  ImGuiTableColumnFlags_NoSort = 512;
  ImGuiTableColumnFlags_NoSortAscending = 1024;
  ImGuiTableColumnFlags_NoSortDescending = 2048;
  ImGuiTableColumnFlags_NoHeaderLabel = 4096;
  ImGuiTableColumnFlags_NoHeaderWidth = 8192;
  ImGuiTableColumnFlags_PreferSortAscending = 16384;
  ImGuiTableColumnFlags_PreferSortDescending = 32768;
  ImGuiTableColumnFlags_IndentEnable = 65536;
  ImGuiTableColumnFlags_IndentDisable = 131072;
  ImGuiTableColumnFlags_AngledHeader = 262144;
  ImGuiTableColumnFlags_IsEnabled = 16777216;
  ImGuiTableColumnFlags_IsVisible = 33554432;
  ImGuiTableColumnFlags_IsSorted = 67108864;
  ImGuiTableColumnFlags_IsHovered = 134217728;
  ImGuiTableColumnFlags_WidthMask_ = 24;
  ImGuiTableColumnFlags_IndentMask_ = 196608;
  ImGuiTableColumnFlags_StatusMask_ = 251658240;
  ImGuiTableColumnFlags_NoDirectResize_ = 1073741824;

type
  ImGuiTableRowFlags_ = Integer;
  PImGuiTableRowFlags_ = ^ImGuiTableRowFlags_;

const
  ImGuiTableRowFlags_None = 0;
  ImGuiTableRowFlags_Headers = 1;

type
  ImGuiTableBgTarget_ = Integer;
  PImGuiTableBgTarget_ = ^ImGuiTableBgTarget_;

const
  ImGuiTableBgTarget_None = 0;
  ImGuiTableBgTarget_RowBg0 = 1;
  ImGuiTableBgTarget_RowBg1 = 2;
  ImGuiTableBgTarget_CellBg = 3;

type
  ImGuiMultiSelectFlags_ = Integer;
  PImGuiMultiSelectFlags_ = ^ImGuiMultiSelectFlags_;

const
  ImGuiMultiSelectFlags_None = 0;
  ImGuiMultiSelectFlags_SingleSelect = 1;
  ImGuiMultiSelectFlags_NoSelectAll = 2;
  ImGuiMultiSelectFlags_NoRangeSelect = 4;
  ImGuiMultiSelectFlags_NoAutoSelect = 8;
  ImGuiMultiSelectFlags_NoAutoClear = 16;
  ImGuiMultiSelectFlags_NoAutoClearOnReselect = 32;
  ImGuiMultiSelectFlags_BoxSelect1d = 64;
  ImGuiMultiSelectFlags_BoxSelect2d = 128;
  ImGuiMultiSelectFlags_BoxSelectNoScroll = 256;
  ImGuiMultiSelectFlags_ClearOnEscape = 512;
  ImGuiMultiSelectFlags_ClearOnClickVoid = 1024;
  ImGuiMultiSelectFlags_ScopeWindow = 2048;
  ImGuiMultiSelectFlags_ScopeRect = 4096;
  ImGuiMultiSelectFlags_SelectOnClick = 8192;
  ImGuiMultiSelectFlags_SelectOnClickRelease = 16384;
  ImGuiMultiSelectFlags_NavWrapX = 65536;

type
  ImGuiSelectionRequestType = Integer;
  PImGuiSelectionRequestType = ^ImGuiSelectionRequestType;

const
  ImGuiSelectionRequestType_None = 0;
  ImGuiSelectionRequestType_SetAll = 1;
  ImGuiSelectionRequestType_SetRange = 2;

type
  ImDrawFlags_ = Integer;
  PImDrawFlags_ = ^ImDrawFlags_;

const
  ImDrawFlags_None = 0;
  ImDrawFlags_Closed = 1;
  ImDrawFlags_RoundCornersTopLeft = 16;
  ImDrawFlags_RoundCornersTopRight = 32;
  ImDrawFlags_RoundCornersBottomLeft = 64;
  ImDrawFlags_RoundCornersBottomRight = 128;
  ImDrawFlags_RoundCornersNone = 256;
  ImDrawFlags_RoundCornersTop = 48;
  ImDrawFlags_RoundCornersBottom = 192;
  ImDrawFlags_RoundCornersLeft = 80;
  ImDrawFlags_RoundCornersRight = 160;
  ImDrawFlags_RoundCornersAll = 240;
  ImDrawFlags_RoundCornersDefault_ = 240;
  ImDrawFlags_RoundCornersMask_ = 496;

type
  ImDrawListFlags_ = Integer;
  PImDrawListFlags_ = ^ImDrawListFlags_;

const
  ImDrawListFlags_None = 0;
  ImDrawListFlags_AntiAliasedLines = 1;
  ImDrawListFlags_AntiAliasedLinesUseTex = 2;
  ImDrawListFlags_AntiAliasedFill = 4;
  ImDrawListFlags_AllowVtxOffset = 8;

type
  ImFontAtlasFlags_ = Integer;
  PImFontAtlasFlags_ = ^ImFontAtlasFlags_;

const
  ImFontAtlasFlags_None = 0;
  ImFontAtlasFlags_NoPowerOfTwoHeight = 1;
  ImFontAtlasFlags_NoMouseCursors = 2;
  ImFontAtlasFlags_NoBakedLines = 4;

type
  ImGuiViewportFlags_ = Integer;
  PImGuiViewportFlags_ = ^ImGuiViewportFlags_;

const
  ImGuiViewportFlags_None = 0;
  ImGuiViewportFlags_IsPlatformWindow = 1;
  ImGuiViewportFlags_IsPlatformMonitor = 2;
  ImGuiViewportFlags_OwnedByApp = 4;
  ImGuiViewportFlags_NoDecoration = 8;
  ImGuiViewportFlags_NoTaskBarIcon = 16;
  ImGuiViewportFlags_NoFocusOnAppearing = 32;
  ImGuiViewportFlags_NoFocusOnClick = 64;
  ImGuiViewportFlags_NoInputs = 128;
  ImGuiViewportFlags_NoRendererClear = 256;
  ImGuiViewportFlags_NoAutoMerge = 512;
  ImGuiViewportFlags_TopMost = 1024;
  ImGuiViewportFlags_CanHostOtherWindows = 2048;
  ImGuiViewportFlags_IsMinimized = 4096;
  ImGuiViewportFlags_IsFocused = 8192;

type
  ImGuiDataTypePrivate_ = Integer;
  PImGuiDataTypePrivate_ = ^ImGuiDataTypePrivate_;

const
  ImGuiDataType_String = 12;
  ImGuiDataType_Pointer = 13;
  ImGuiDataType_ID = 14;

type
  ImGuiItemFlagsPrivate_ = Integer;
  PImGuiItemFlagsPrivate_ = ^ImGuiItemFlagsPrivate_;

const
  ImGuiItemFlags_Disabled = 1024;
  ImGuiItemFlags_ReadOnly = 2048;
  ImGuiItemFlags_MixedValue = 4096;
  ImGuiItemFlags_NoWindowHoverableCheck = 8192;
  ImGuiItemFlags_AllowOverlap = 16384;
  ImGuiItemFlags_Inputable = 1048576;
  ImGuiItemFlags_HasSelectionUserData = 2097152;
  ImGuiItemFlags_IsMultiSelect = 4194304;
  ImGuiItemFlags_Default_ = 16;

type
  ImGuiItemStatusFlags_ = Integer;
  PImGuiItemStatusFlags_ = ^ImGuiItemStatusFlags_;

const
  ImGuiItemStatusFlags_None = 0;
  ImGuiItemStatusFlags_HoveredRect = 1;
  ImGuiItemStatusFlags_HasDisplayRect = 2;
  ImGuiItemStatusFlags_Edited = 4;
  ImGuiItemStatusFlags_ToggledSelection = 8;
  ImGuiItemStatusFlags_ToggledOpen = 16;
  ImGuiItemStatusFlags_HasDeactivated = 32;
  ImGuiItemStatusFlags_Deactivated = 64;
  ImGuiItemStatusFlags_HoveredWindow = 128;
  ImGuiItemStatusFlags_Visible = 256;
  ImGuiItemStatusFlags_HasClipRect = 512;
  ImGuiItemStatusFlags_HasShortcut = 1024;

type
  ImGuiHoveredFlagsPrivate_ = Integer;
  PImGuiHoveredFlagsPrivate_ = ^ImGuiHoveredFlagsPrivate_;

const
  ImGuiHoveredFlags_DelayMask_ = 245760;
  ImGuiHoveredFlags_AllowedMaskForIsWindowHovered = 12479;
  ImGuiHoveredFlags_AllowedMaskForIsItemHovered = 262048;

type
  ImGuiInputTextFlagsPrivate_ = Integer;
  PImGuiInputTextFlagsPrivate_ = ^ImGuiInputTextFlagsPrivate_;

const
  ImGuiInputTextFlags_Multiline = 67108864;
  ImGuiInputTextFlags_NoMarkEdited = 134217728;
  ImGuiInputTextFlags_MergedItem = 268435456;
  ImGuiInputTextFlags_LocalizeDecimalPoint = 536870912;

type
  ImGuiButtonFlagsPrivate_ = Integer;
  PImGuiButtonFlagsPrivate_ = ^ImGuiButtonFlagsPrivate_;

const
  ImGuiButtonFlags_PressedOnClick = 16;
  ImGuiButtonFlags_PressedOnClickRelease = 32;
  ImGuiButtonFlags_PressedOnClickReleaseAnywhere = 64;
  ImGuiButtonFlags_PressedOnRelease = 128;
  ImGuiButtonFlags_PressedOnDoubleClick = 256;
  ImGuiButtonFlags_PressedOnDragDropHold = 512;
  ImGuiButtonFlags_Repeat = 1024;
  ImGuiButtonFlags_FlattenChildren = 2048;
  ImGuiButtonFlags_AllowOverlap = 4096;
  ImGuiButtonFlags_DontClosePopups = 8192;
  ImGuiButtonFlags_AlignTextBaseLine = 32768;
  ImGuiButtonFlags_NoKeyModifiers = 65536;
  ImGuiButtonFlags_NoHoldingActiveId = 131072;
  ImGuiButtonFlags_NoNavFocus = 262144;
  ImGuiButtonFlags_NoHoveredOnFocus = 524288;
  ImGuiButtonFlags_NoSetKeyOwner = 1048576;
  ImGuiButtonFlags_NoTestKeyOwner = 2097152;
  ImGuiButtonFlags_PressedOnMask_ = 1008;
  ImGuiButtonFlags_PressedOnDefault_ = 32;

type
  ImGuiComboFlagsPrivate_ = Integer;
  PImGuiComboFlagsPrivate_ = ^ImGuiComboFlagsPrivate_;

const
  ImGuiComboFlags_CustomPreview = 1048576;

type
  ImGuiSliderFlagsPrivate_ = Integer;
  PImGuiSliderFlagsPrivate_ = ^ImGuiSliderFlagsPrivate_;

const
  ImGuiSliderFlags_Vertical = 1048576;
  ImGuiSliderFlags_ReadOnly = 2097152;

type
  ImGuiSelectableFlagsPrivate_ = Integer;
  PImGuiSelectableFlagsPrivate_ = ^ImGuiSelectableFlagsPrivate_;

const
  ImGuiSelectableFlags_NoHoldingActiveID = 1048576;
  ImGuiSelectableFlags_SelectOnNav = 2097152;
  ImGuiSelectableFlags_SelectOnClick = 4194304;
  ImGuiSelectableFlags_SelectOnRelease = 8388608;
  ImGuiSelectableFlags_SpanAvailWidth = 16777216;
  ImGuiSelectableFlags_SetNavIdOnHover = 33554432;
  ImGuiSelectableFlags_NoPadWithHalfSpacing = 67108864;
  ImGuiSelectableFlags_NoSetKeyOwner = 134217728;

type
  ImGuiTreeNodeFlagsPrivate_ = Integer;
  PImGuiTreeNodeFlagsPrivate_ = ^ImGuiTreeNodeFlagsPrivate_;

const
  ImGuiTreeNodeFlags_ClipLabelForTrailingButton = 268435456;
  ImGuiTreeNodeFlags_UpsideDownArrow = 536870912;

type
  ImGuiSeparatorFlags_ = Integer;
  PImGuiSeparatorFlags_ = ^ImGuiSeparatorFlags_;

const
  ImGuiSeparatorFlags_None = 0;
  ImGuiSeparatorFlags_Horizontal = 1;
  ImGuiSeparatorFlags_Vertical = 2;
  ImGuiSeparatorFlags_SpanAllColumns = 4;

type
  ImGuiFocusRequestFlags_ = Integer;
  PImGuiFocusRequestFlags_ = ^ImGuiFocusRequestFlags_;

const
  ImGuiFocusRequestFlags_None = 0;
  ImGuiFocusRequestFlags_RestoreFocusedChild = 1;
  ImGuiFocusRequestFlags_UnlessBelowModal = 2;

type
  ImGuiTextFlags_ = Integer;
  PImGuiTextFlags_ = ^ImGuiTextFlags_;

const
  ImGuiTextFlags_None = 0;
  ImGuiTextFlags_NoWidthForLargeClippedText = 1;

type
  ImGuiTooltipFlags_ = Integer;
  PImGuiTooltipFlags_ = ^ImGuiTooltipFlags_;

const
  ImGuiTooltipFlags_None = 0;
  ImGuiTooltipFlags_OverridePrevious = 2;

type
  ImGuiLayoutType_ = Integer;
  PImGuiLayoutType_ = ^ImGuiLayoutType_;

const
  ImGuiLayoutType_Horizontal = 0;
  ImGuiLayoutType_Vertical = 1;

type
  ImGuiLogType = Integer;
  PImGuiLogType = ^ImGuiLogType;

const
  ImGuiLogType_None = 0;
  ImGuiLogType_TTY = 1;
  ImGuiLogType_File = 2;
  ImGuiLogType_Buffer = 3;
  ImGuiLogType_Clipboard = 4;

type
  ImGuiAxis = Integer;
  PImGuiAxis = ^ImGuiAxis;

const
  ImGuiAxis_None = -1;
  ImGuiAxis_X = 0;
  ImGuiAxis_Y = 1;

type
  ImGuiPlotType = Integer;
  PImGuiPlotType = ^ImGuiPlotType;

const
  ImGuiPlotType_Lines = 0;
  ImGuiPlotType_Histogram = 1;

type
  ImGuiWindowRefreshFlags_ = Integer;
  PImGuiWindowRefreshFlags_ = ^ImGuiWindowRefreshFlags_;

const
  ImGuiWindowRefreshFlags_None = 0;
  ImGuiWindowRefreshFlags_TryToAvoidRefresh = 1;
  ImGuiWindowRefreshFlags_RefreshOnHover = 2;
  ImGuiWindowRefreshFlags_RefreshOnFocus = 4;

type
  ImGuiNextWindowDataFlags_ = Integer;
  PImGuiNextWindowDataFlags_ = ^ImGuiNextWindowDataFlags_;

const
  ImGuiNextWindowDataFlags_None = 0;
  ImGuiNextWindowDataFlags_HasPos = 1;
  ImGuiNextWindowDataFlags_HasSize = 2;
  ImGuiNextWindowDataFlags_HasContentSize = 4;
  ImGuiNextWindowDataFlags_HasCollapsed = 8;
  ImGuiNextWindowDataFlags_HasSizeConstraint = 16;
  ImGuiNextWindowDataFlags_HasFocus = 32;
  ImGuiNextWindowDataFlags_HasBgAlpha = 64;
  ImGuiNextWindowDataFlags_HasScroll = 128;
  ImGuiNextWindowDataFlags_HasChildFlags = 256;
  ImGuiNextWindowDataFlags_HasRefreshPolicy = 512;
  ImGuiNextWindowDataFlags_HasViewport = 1024;
  ImGuiNextWindowDataFlags_HasDock = 2048;
  ImGuiNextWindowDataFlags_HasWindowClass = 4096;

type
  ImGuiNextItemDataFlags_ = Integer;
  PImGuiNextItemDataFlags_ = ^ImGuiNextItemDataFlags_;

const
  ImGuiNextItemDataFlags_None = 0;
  ImGuiNextItemDataFlags_HasWidth = 1;
  ImGuiNextItemDataFlags_HasOpen = 2;
  ImGuiNextItemDataFlags_HasShortcut = 4;
  ImGuiNextItemDataFlags_HasRefVal = 8;
  ImGuiNextItemDataFlags_HasStorageID = 16;

type
  ImGuiPopupPositionPolicy = Integer;
  PImGuiPopupPositionPolicy = ^ImGuiPopupPositionPolicy;

const
  ImGuiPopupPositionPolicy_Default = 0;
  ImGuiPopupPositionPolicy_ComboBox = 1;
  ImGuiPopupPositionPolicy_Tooltip = 2;

type
  ImGuiInputEventType = Integer;
  PImGuiInputEventType = ^ImGuiInputEventType;

const
  ImGuiInputEventType_None = 0;
  ImGuiInputEventType_MousePos = 1;
  ImGuiInputEventType_MouseWheel = 2;
  ImGuiInputEventType_MouseButton = 3;
  ImGuiInputEventType_MouseViewport = 4;
  ImGuiInputEventType_Key = 5;
  ImGuiInputEventType_Text = 6;
  ImGuiInputEventType_Focus = 7;
  ImGuiInputEventType_COUNT = 8;

type
  ImGuiInputSource = Integer;
  PImGuiInputSource = ^ImGuiInputSource;

const
  ImGuiInputSource_None = 0;
  ImGuiInputSource_Mouse = 1;
  ImGuiInputSource_Keyboard = 2;
  ImGuiInputSource_Gamepad = 3;
  ImGuiInputSource_COUNT = 4;

type
  ImGuiInputFlagsPrivate_ = Integer;
  PImGuiInputFlagsPrivate_ = ^ImGuiInputFlagsPrivate_;

const
  ImGuiInputFlags_RepeatRateDefault = 2;
  ImGuiInputFlags_RepeatRateNavMove = 4;
  ImGuiInputFlags_RepeatRateNavTweak = 8;
  ImGuiInputFlags_RepeatUntilRelease = 16;
  ImGuiInputFlags_RepeatUntilKeyModsChange = 32;
  ImGuiInputFlags_RepeatUntilKeyModsChangeFromNone = 64;
  ImGuiInputFlags_RepeatUntilOtherKeyPress = 128;
  ImGuiInputFlags_LockThisFrame = 1048576;
  ImGuiInputFlags_LockUntilRelease = 2097152;
  ImGuiInputFlags_CondHovered = 4194304;
  ImGuiInputFlags_CondActive = 8388608;
  ImGuiInputFlags_CondDefault_ = 12582912;
  ImGuiInputFlags_RepeatRateMask_ = 14;
  ImGuiInputFlags_RepeatUntilMask_ = 240;
  ImGuiInputFlags_RepeatMask_ = 255;
  ImGuiInputFlags_CondMask_ = 12582912;
  ImGuiInputFlags_RouteTypeMask_ = 15360;
  ImGuiInputFlags_RouteOptionsMask_ = 245760;
  ImGuiInputFlags_SupportedByIsKeyPressed = 255;
  ImGuiInputFlags_SupportedByIsMouseClicked = 1;
  ImGuiInputFlags_SupportedByShortcut = 261375;
  ImGuiInputFlags_SupportedBySetNextItemShortcut = 523519;
  ImGuiInputFlags_SupportedBySetKeyOwner = 3145728;
  ImGuiInputFlags_SupportedBySetItemKeyOwner = 15728640;

type
  ImGuiActivateFlags_ = Integer;
  PImGuiActivateFlags_ = ^ImGuiActivateFlags_;

const
  ImGuiActivateFlags_None = 0;
  ImGuiActivateFlags_PreferInput = 1;
  ImGuiActivateFlags_PreferTweak = 2;
  ImGuiActivateFlags_TryToPreserveState = 4;
  ImGuiActivateFlags_FromTabbing = 8;
  ImGuiActivateFlags_FromShortcut = 16;

type
  ImGuiScrollFlags_ = Integer;
  PImGuiScrollFlags_ = ^ImGuiScrollFlags_;

const
  ImGuiScrollFlags_None = 0;
  ImGuiScrollFlags_KeepVisibleEdgeX = 1;
  ImGuiScrollFlags_KeepVisibleEdgeY = 2;
  ImGuiScrollFlags_KeepVisibleCenterX = 4;
  ImGuiScrollFlags_KeepVisibleCenterY = 8;
  ImGuiScrollFlags_AlwaysCenterX = 16;
  ImGuiScrollFlags_AlwaysCenterY = 32;
  ImGuiScrollFlags_NoScrollParent = 64;
  ImGuiScrollFlags_MaskX_ = 21;
  ImGuiScrollFlags_MaskY_ = 42;

type
  ImGuiNavHighlightFlags_ = Integer;
  PImGuiNavHighlightFlags_ = ^ImGuiNavHighlightFlags_;

const
  ImGuiNavHighlightFlags_None = 0;
  ImGuiNavHighlightFlags_Compact = 2;
  ImGuiNavHighlightFlags_AlwaysDraw = 4;
  ImGuiNavHighlightFlags_NoRounding = 8;

type
  ImGuiNavMoveFlags_ = Integer;
  PImGuiNavMoveFlags_ = ^ImGuiNavMoveFlags_;

const
  ImGuiNavMoveFlags_None = 0;
  ImGuiNavMoveFlags_LoopX = 1;
  ImGuiNavMoveFlags_LoopY = 2;
  ImGuiNavMoveFlags_WrapX = 4;
  ImGuiNavMoveFlags_WrapY = 8;
  ImGuiNavMoveFlags_WrapMask_ = 15;
  ImGuiNavMoveFlags_AllowCurrentNavId = 16;
  ImGuiNavMoveFlags_AlsoScoreVisibleSet = 32;
  ImGuiNavMoveFlags_ScrollToEdgeY = 64;
  ImGuiNavMoveFlags_Forwarded = 128;
  ImGuiNavMoveFlags_DebugNoResult = 256;
  ImGuiNavMoveFlags_FocusApi = 512;
  ImGuiNavMoveFlags_IsTabbing = 1024;
  ImGuiNavMoveFlags_IsPageMove = 2048;
  ImGuiNavMoveFlags_Activate = 4096;
  ImGuiNavMoveFlags_NoSelect = 8192;
  ImGuiNavMoveFlags_NoSetNavHighlight = 16384;
  ImGuiNavMoveFlags_NoClearActiveId = 32768;

type
  ImGuiNavLayer = Integer;
  PImGuiNavLayer = ^ImGuiNavLayer;

const
  ImGuiNavLayer_Main = 0;
  ImGuiNavLayer_Menu = 1;
  ImGuiNavLayer_COUNT = 2;

type
  ImGuiTypingSelectFlags_ = Integer;
  PImGuiTypingSelectFlags_ = ^ImGuiTypingSelectFlags_;

const
  ImGuiTypingSelectFlags_None = 0;
  ImGuiTypingSelectFlags_AllowBackspace = 1;
  ImGuiTypingSelectFlags_AllowSingleCharMode = 2;

type
  ImGuiOldColumnFlags_ = Integer;
  PImGuiOldColumnFlags_ = ^ImGuiOldColumnFlags_;

const
  ImGuiOldColumnFlags_None = 0;
  ImGuiOldColumnFlags_NoBorder = 1;
  ImGuiOldColumnFlags_NoResize = 2;
  ImGuiOldColumnFlags_NoPreserveWidths = 4;
  ImGuiOldColumnFlags_NoForceWithinWindow = 8;
  ImGuiOldColumnFlags_GrowParentContentsSize = 16;

type
  ImGuiDockNodeFlagsPrivate_ = Integer;
  PImGuiDockNodeFlagsPrivate_ = ^ImGuiDockNodeFlagsPrivate_;

const
  ImGuiDockNodeFlags_DockSpace = 1024;
  ImGuiDockNodeFlags_CentralNode = 2048;
  ImGuiDockNodeFlags_NoTabBar = 4096;
  ImGuiDockNodeFlags_HiddenTabBar = 8192;
  ImGuiDockNodeFlags_NoWindowMenuButton = 16384;
  ImGuiDockNodeFlags_NoCloseButton = 32768;
  ImGuiDockNodeFlags_NoResizeX = 65536;
  ImGuiDockNodeFlags_NoResizeY = 131072;
  ImGuiDockNodeFlags_DockedWindowsInFocusRoute = 262144;
  ImGuiDockNodeFlags_NoDockingSplitOther = 524288;
  ImGuiDockNodeFlags_NoDockingOverMe = 1048576;
  ImGuiDockNodeFlags_NoDockingOverOther = 2097152;
  ImGuiDockNodeFlags_NoDockingOverEmpty = 4194304;
  ImGuiDockNodeFlags_NoDocking = 7864336;
  ImGuiDockNodeFlags_SharedFlagsInheritMask_ = -1;
  ImGuiDockNodeFlags_NoResizeFlagsMask_ = 196640;
  ImGuiDockNodeFlags_LocalFlagsTransferMask_ = 260208;
  ImGuiDockNodeFlags_SavedFlagsMask_ = 261152;

type
  ImGuiDataAuthority_ = Integer;
  PImGuiDataAuthority_ = ^ImGuiDataAuthority_;

const
  ImGuiDataAuthority_Auto = 0;
  ImGuiDataAuthority_DockNode = 1;
  ImGuiDataAuthority_Window = 2;

type
  ImGuiDockNodeState = Integer;
  PImGuiDockNodeState = ^ImGuiDockNodeState;

const
  ImGuiDockNodeState_Unknown = 0;
  ImGuiDockNodeState_HostWindowHiddenBecauseSingleWindow = 1;
  ImGuiDockNodeState_HostWindowHiddenBecauseWindowsAreResizing = 2;
  ImGuiDockNodeState_HostWindowVisible = 3;

type
  ImGuiWindowDockStyleCol = Integer;
  PImGuiWindowDockStyleCol = ^ImGuiWindowDockStyleCol;

const
  ImGuiWindowDockStyleCol_Text = 0;
  ImGuiWindowDockStyleCol_TabHovered = 1;
  ImGuiWindowDockStyleCol_TabFocused = 2;
  ImGuiWindowDockStyleCol_TabSelected = 3;
  ImGuiWindowDockStyleCol_TabSelectedOverline = 4;
  ImGuiWindowDockStyleCol_TabDimmed = 5;
  ImGuiWindowDockStyleCol_TabDimmedSelected = 6;
  ImGuiWindowDockStyleCol_TabDimmedSelectedOverline = 7;
  ImGuiWindowDockStyleCol_COUNT = 8;

type
  ImGuiLocKey = Integer;
  PImGuiLocKey = ^ImGuiLocKey;

const
  ImGuiLocKey_VersionStr = 0;
  ImGuiLocKey_TableSizeOne = 1;
  ImGuiLocKey_TableSizeAllFit = 2;
  ImGuiLocKey_TableSizeAllDefault = 3;
  ImGuiLocKey_TableResetOrder = 4;
  ImGuiLocKey_WindowingMainMenuBar = 5;
  ImGuiLocKey_WindowingPopup = 6;
  ImGuiLocKey_WindowingUntitled = 7;
  ImGuiLocKey_CopyLink = 8;
  ImGuiLocKey_DockingHideTabBar = 9;
  ImGuiLocKey_DockingHoldShiftToDock = 10;
  ImGuiLocKey_DockingDragToUndockOrMoveNode = 11;
  ImGuiLocKey_COUNT = 12;

type
  ImGuiDebugLogFlags_ = Integer;
  PImGuiDebugLogFlags_ = ^ImGuiDebugLogFlags_;

const
  ImGuiDebugLogFlags_None = 0;
  ImGuiDebugLogFlags_EventActiveId = 1;
  ImGuiDebugLogFlags_EventFocus = 2;
  ImGuiDebugLogFlags_EventPopup = 4;
  ImGuiDebugLogFlags_EventNav = 8;
  ImGuiDebugLogFlags_EventClipper = 16;
  ImGuiDebugLogFlags_EventSelection = 32;
  ImGuiDebugLogFlags_EventIO = 64;
  ImGuiDebugLogFlags_EventInputRouting = 128;
  ImGuiDebugLogFlags_EventDocking = 256;
  ImGuiDebugLogFlags_EventViewport = 512;
  ImGuiDebugLogFlags_EventMask_ = 1023;
  ImGuiDebugLogFlags_OutputToTTY = 1048576;
  ImGuiDebugLogFlags_OutputToTestEngine = 2097152;

type
  ImGuiContextHookType = Integer;
  PImGuiContextHookType = ^ImGuiContextHookType;

const
  ImGuiContextHookType_NewFramePre = 0;
  ImGuiContextHookType_NewFramePost = 1;
  ImGuiContextHookType_EndFramePre = 2;
  ImGuiContextHookType_EndFramePost = 3;
  ImGuiContextHookType_RenderPre = 4;
  ImGuiContextHookType_RenderPost = 5;
  ImGuiContextHookType_Shutdown = 6;
  ImGuiContextHookType_PendingRemoval_ = 7;

type
  ImGuiTabBarFlagsPrivate_ = Integer;
  PImGuiTabBarFlagsPrivate_ = ^ImGuiTabBarFlagsPrivate_;

const
  ImGuiTabBarFlags_DockNode = 1048576;
  ImGuiTabBarFlags_IsFocused = 2097152;
  ImGuiTabBarFlags_SaveSettings = 4194304;

type
  ImGuiTabItemFlagsPrivate_ = Integer;
  PImGuiTabItemFlagsPrivate_ = ^ImGuiTabItemFlagsPrivate_;

const
  ImGuiTabItemFlags_SectionMask_ = 192;
  ImGuiTabItemFlags_NoCloseButton = 1048576;
  ImGuiTabItemFlags_Button = 2097152;
  ImGuiTabItemFlags_Unsorted = 4194304;

type
  ImAxis_ = Integer;
  PImAxis_ = ^ImAxis_;

const
  ImAxis_X1 = 0;
  ImAxis_X2 = 1;
  ImAxis_X3 = 2;
  ImAxis_Y1 = 3;
  ImAxis_Y2 = 4;
  ImAxis_Y3 = 5;
  ImAxis_COUNT = 6;

type
  ImPlotFlags_ = Integer;
  PImPlotFlags_ = ^ImPlotFlags_;

const
  ImPlotFlags_None = 0;
  ImPlotFlags_NoTitle = 1;
  ImPlotFlags_NoLegend = 2;
  ImPlotFlags_NoMouseText = 4;
  ImPlotFlags_NoInputs = 8;
  ImPlotFlags_NoMenus = 16;
  ImPlotFlags_NoBoxSelect = 32;
  ImPlotFlags_NoFrame = 64;
  ImPlotFlags_Equal = 128;
  ImPlotFlags_Crosshairs = 256;
  ImPlotFlags_CanvasOnly = 55;

type
  ImPlotAxisFlags_ = Integer;
  PImPlotAxisFlags_ = ^ImPlotAxisFlags_;

const
  ImPlotAxisFlags_None = 0;
  ImPlotAxisFlags_NoLabel = 1;
  ImPlotAxisFlags_NoGridLines = 2;
  ImPlotAxisFlags_NoTickMarks = 4;
  ImPlotAxisFlags_NoTickLabels = 8;
  ImPlotAxisFlags_NoInitialFit = 16;
  ImPlotAxisFlags_NoMenus = 32;
  ImPlotAxisFlags_NoSideSwitch = 64;
  ImPlotAxisFlags_NoHighlight = 128;
  ImPlotAxisFlags_Opposite = 256;
  ImPlotAxisFlags_Foreground = 512;
  ImPlotAxisFlags_Invert = 1024;
  ImPlotAxisFlags_AutoFit = 2048;
  ImPlotAxisFlags_RangeFit = 4096;
  ImPlotAxisFlags_PanStretch = 8192;
  ImPlotAxisFlags_LockMin = 16384;
  ImPlotAxisFlags_LockMax = 32768;
  ImPlotAxisFlags_Lock = 49152;
  ImPlotAxisFlags_NoDecorations = 15;
  ImPlotAxisFlags_AuxDefault = 258;

type
  ImPlotSubplotFlags_ = Integer;
  PImPlotSubplotFlags_ = ^ImPlotSubplotFlags_;

const
  ImPlotSubplotFlags_None = 0;
  ImPlotSubplotFlags_NoTitle = 1;
  ImPlotSubplotFlags_NoLegend = 2;
  ImPlotSubplotFlags_NoMenus = 4;
  ImPlotSubplotFlags_NoResize = 8;
  ImPlotSubplotFlags_NoAlign = 16;
  ImPlotSubplotFlags_ShareItems = 32;
  ImPlotSubplotFlags_LinkRows = 64;
  ImPlotSubplotFlags_LinkCols = 128;
  ImPlotSubplotFlags_LinkAllX = 256;
  ImPlotSubplotFlags_LinkAllY = 512;
  ImPlotSubplotFlags_ColMajor = 1024;

type
  ImPlotLegendFlags_ = Integer;
  PImPlotLegendFlags_ = ^ImPlotLegendFlags_;

const
  ImPlotLegendFlags_None = 0;
  ImPlotLegendFlags_NoButtons = 1;
  ImPlotLegendFlags_NoHighlightItem = 2;
  ImPlotLegendFlags_NoHighlightAxis = 4;
  ImPlotLegendFlags_NoMenus = 8;
  ImPlotLegendFlags_Outside = 16;
  ImPlotLegendFlags_Horizontal = 32;
  ImPlotLegendFlags_Sort = 64;

type
  ImPlotMouseTextFlags_ = Integer;
  PImPlotMouseTextFlags_ = ^ImPlotMouseTextFlags_;

const
  ImPlotMouseTextFlags_None = 0;
  ImPlotMouseTextFlags_NoAuxAxes = 1;
  ImPlotMouseTextFlags_NoFormat = 2;
  ImPlotMouseTextFlags_ShowAlways = 4;

type
  ImPlotDragToolFlags_ = Integer;
  PImPlotDragToolFlags_ = ^ImPlotDragToolFlags_;

const
  ImPlotDragToolFlags_None = 0;
  ImPlotDragToolFlags_NoCursors = 1;
  ImPlotDragToolFlags_NoFit = 2;
  ImPlotDragToolFlags_NoInputs = 4;
  ImPlotDragToolFlags_Delayed = 8;

type
  ImPlotColormapScaleFlags_ = Integer;
  PImPlotColormapScaleFlags_ = ^ImPlotColormapScaleFlags_;

const
  ImPlotColormapScaleFlags_None = 0;
  ImPlotColormapScaleFlags_NoLabel = 1;
  ImPlotColormapScaleFlags_Opposite = 2;
  ImPlotColormapScaleFlags_Invert = 4;

type
  ImPlotItemFlags_ = Integer;
  PImPlotItemFlags_ = ^ImPlotItemFlags_;

const
  ImPlotItemFlags_None = 0;
  ImPlotItemFlags_NoLegend = 1;
  ImPlotItemFlags_NoFit = 2;

type
  ImPlotLineFlags_ = Integer;
  PImPlotLineFlags_ = ^ImPlotLineFlags_;

const
  ImPlotLineFlags_None = 0;
  ImPlotLineFlags_Segments = 1024;
  ImPlotLineFlags_Loop = 2048;
  ImPlotLineFlags_SkipNaN = 4096;
  ImPlotLineFlags_NoClip = 8192;
  ImPlotLineFlags_Shaded = 16384;

type
  ImPlotScatterFlags_ = Integer;
  PImPlotScatterFlags_ = ^ImPlotScatterFlags_;

const
  ImPlotScatterFlags_None = 0;
  ImPlotScatterFlags_NoClip = 1024;

type
  ImPlotStairsFlags_ = Integer;
  PImPlotStairsFlags_ = ^ImPlotStairsFlags_;

const
  ImPlotStairsFlags_None = 0;
  ImPlotStairsFlags_PreStep = 1024;
  ImPlotStairsFlags_Shaded = 2048;

type
  ImPlotShadedFlags_ = Integer;
  PImPlotShadedFlags_ = ^ImPlotShadedFlags_;

const
  ImPlotShadedFlags_None = 0;

type
  ImPlotBarsFlags_ = Integer;
  PImPlotBarsFlags_ = ^ImPlotBarsFlags_;

const
  ImPlotBarsFlags_None = 0;
  ImPlotBarsFlags_Horizontal = 1024;

type
  ImPlotBarGroupsFlags_ = Integer;
  PImPlotBarGroupsFlags_ = ^ImPlotBarGroupsFlags_;

const
  ImPlotBarGroupsFlags_None = 0;
  ImPlotBarGroupsFlags_Horizontal = 1024;
  ImPlotBarGroupsFlags_Stacked = 2048;

type
  ImPlotErrorBarsFlags_ = Integer;
  PImPlotErrorBarsFlags_ = ^ImPlotErrorBarsFlags_;

const
  ImPlotErrorBarsFlags_None = 0;
  ImPlotErrorBarsFlags_Horizontal = 1024;

type
  ImPlotStemsFlags_ = Integer;
  PImPlotStemsFlags_ = ^ImPlotStemsFlags_;

const
  ImPlotStemsFlags_None = 0;
  ImPlotStemsFlags_Horizontal = 1024;

type
  ImPlotInfLinesFlags_ = Integer;
  PImPlotInfLinesFlags_ = ^ImPlotInfLinesFlags_;

const
  ImPlotInfLinesFlags_None = 0;
  ImPlotInfLinesFlags_Horizontal = 1024;

type
  ImPlotPieChartFlags_ = Integer;
  PImPlotPieChartFlags_ = ^ImPlotPieChartFlags_;

const
  ImPlotPieChartFlags_None = 0;
  ImPlotPieChartFlags_Normalize = 1024;
  ImPlotPieChartFlags_IgnoreHidden = 2048;

type
  ImPlotHeatmapFlags_ = Integer;
  PImPlotHeatmapFlags_ = ^ImPlotHeatmapFlags_;

const
  ImPlotHeatmapFlags_None = 0;
  ImPlotHeatmapFlags_ColMajor = 1024;

type
  ImPlotHistogramFlags_ = Integer;
  PImPlotHistogramFlags_ = ^ImPlotHistogramFlags_;

const
  ImPlotHistogramFlags_None = 0;
  ImPlotHistogramFlags_Horizontal = 1024;
  ImPlotHistogramFlags_Cumulative = 2048;
  ImPlotHistogramFlags_Density = 4096;
  ImPlotHistogramFlags_NoOutliers = 8192;
  ImPlotHistogramFlags_ColMajor = 16384;

type
  ImPlotDigitalFlags_ = Integer;
  PImPlotDigitalFlags_ = ^ImPlotDigitalFlags_;

const
  ImPlotDigitalFlags_None = 0;

type
  ImPlotImageFlags_ = Integer;
  PImPlotImageFlags_ = ^ImPlotImageFlags_;

const
  ImPlotImageFlags_None = 0;

type
  ImPlotTextFlags_ = Integer;
  PImPlotTextFlags_ = ^ImPlotTextFlags_;

const
  ImPlotTextFlags_None = 0;
  ImPlotTextFlags_Vertical = 1024;

type
  ImPlotDummyFlags_ = Integer;
  PImPlotDummyFlags_ = ^ImPlotDummyFlags_;

const
  ImPlotDummyFlags_None = 0;

type
  ImPlotCond_ = Integer;
  PImPlotCond_ = ^ImPlotCond_;

const
  ImPlotCond_None = 0;
  ImPlotCond_Always = 1;
  ImPlotCond_Once = 2;

type
  ImPlotCol_ = Integer;
  PImPlotCol_ = ^ImPlotCol_;

const
  ImPlotCol_Line = 0;
  ImPlotCol_Fill = 1;
  ImPlotCol_MarkerOutline = 2;
  ImPlotCol_MarkerFill = 3;
  ImPlotCol_ErrorBar = 4;
  ImPlotCol_FrameBg = 5;
  ImPlotCol_PlotBg = 6;
  ImPlotCol_PlotBorder = 7;
  ImPlotCol_LegendBg = 8;
  ImPlotCol_LegendBorder = 9;
  ImPlotCol_LegendText = 10;
  ImPlotCol_TitleText = 11;
  ImPlotCol_InlayText = 12;
  ImPlotCol_AxisText = 13;
  ImPlotCol_AxisGrid = 14;
  ImPlotCol_AxisTick = 15;
  ImPlotCol_AxisBg = 16;
  ImPlotCol_AxisBgHovered = 17;
  ImPlotCol_AxisBgActive = 18;
  ImPlotCol_Selection = 19;
  ImPlotCol_Crosshairs = 20;
  ImPlotCol_COUNT = 21;

type
  ImPlotStyleVar_ = Integer;
  PImPlotStyleVar_ = ^ImPlotStyleVar_;

const
  ImPlotStyleVar_LineWeight = 0;
  ImPlotStyleVar_Marker = 1;
  ImPlotStyleVar_MarkerSize = 2;
  ImPlotStyleVar_MarkerWeight = 3;
  ImPlotStyleVar_FillAlpha = 4;
  ImPlotStyleVar_ErrorBarSize = 5;
  ImPlotStyleVar_ErrorBarWeight = 6;
  ImPlotStyleVar_DigitalBitHeight = 7;
  ImPlotStyleVar_DigitalBitGap = 8;
  ImPlotStyleVar_PlotBorderSize = 9;
  ImPlotStyleVar_MinorAlpha = 10;
  ImPlotStyleVar_MajorTickLen = 11;
  ImPlotStyleVar_MinorTickLen = 12;
  ImPlotStyleVar_MajorTickSize = 13;
  ImPlotStyleVar_MinorTickSize = 14;
  ImPlotStyleVar_MajorGridSize = 15;
  ImPlotStyleVar_MinorGridSize = 16;
  ImPlotStyleVar_PlotPadding = 17;
  ImPlotStyleVar_LabelPadding = 18;
  ImPlotStyleVar_LegendPadding = 19;
  ImPlotStyleVar_LegendInnerPadding = 20;
  ImPlotStyleVar_LegendSpacing = 21;
  ImPlotStyleVar_MousePosPadding = 22;
  ImPlotStyleVar_AnnotationPadding = 23;
  ImPlotStyleVar_FitPadding = 24;
  ImPlotStyleVar_PlotDefaultSize = 25;
  ImPlotStyleVar_PlotMinSize = 26;
  ImPlotStyleVar_COUNT = 27;

type
  ImPlotScale_ = Integer;
  PImPlotScale_ = ^ImPlotScale_;

const
  ImPlotScale_Linear = 0;
  ImPlotScale_Time = 1;
  ImPlotScale_Log10 = 2;
  ImPlotScale_SymLog = 3;

type
  ImPlotMarker_ = Integer;
  PImPlotMarker_ = ^ImPlotMarker_;

const
  ImPlotMarker_None = -1;
  ImPlotMarker_Circle = 0;
  ImPlotMarker_Square = 1;
  ImPlotMarker_Diamond = 2;
  ImPlotMarker_Up = 3;
  ImPlotMarker_Down = 4;
  ImPlotMarker_Left = 5;
  ImPlotMarker_Right = 6;
  ImPlotMarker_Cross = 7;
  ImPlotMarker_Plus = 8;
  ImPlotMarker_Asterisk = 9;
  ImPlotMarker_COUNT = 10;

type
  ImPlotColormap_ = Integer;
  PImPlotColormap_ = ^ImPlotColormap_;

const
  ImPlotColormap_Deep = 0;
  ImPlotColormap_Dark = 1;
  ImPlotColormap_Pastel = 2;
  ImPlotColormap_Paired = 3;
  ImPlotColormap_Viridis = 4;
  ImPlotColormap_Plasma = 5;
  ImPlotColormap_Hot = 6;
  ImPlotColormap_Cool = 7;
  ImPlotColormap_Pink = 8;
  ImPlotColormap_Jet = 9;
  ImPlotColormap_Twilight = 10;
  ImPlotColormap_RdBu = 11;
  ImPlotColormap_BrBG = 12;
  ImPlotColormap_PiYG = 13;
  ImPlotColormap_Spectral = 14;
  ImPlotColormap_Greys = 15;

type
  ImPlotLocation_ = Integer;
  PImPlotLocation_ = ^ImPlotLocation_;

const
  ImPlotLocation_Center = 0;
  ImPlotLocation_North = 1;
  ImPlotLocation_South = 2;
  ImPlotLocation_West = 4;
  ImPlotLocation_East = 8;
  ImPlotLocation_NorthWest = 5;
  ImPlotLocation_NorthEast = 9;
  ImPlotLocation_SouthWest = 6;
  ImPlotLocation_SouthEast = 10;

type
  ImPlotBin_ = Integer;
  PImPlotBin_ = ^ImPlotBin_;

const
  ImPlotBin_Sqrt = -1;
  ImPlotBin_Sturges = -2;
  ImPlotBin_Rice = -3;
  ImPlotBin_Scott = -4;

type
  ImPlotTimeUnit_ = Integer;
  PImPlotTimeUnit_ = ^ImPlotTimeUnit_;

const
  ImPlotTimeUnit_Us = 0;
  ImPlotTimeUnit_Ms = 1;
  ImPlotTimeUnit_S = 2;
  ImPlotTimeUnit_Min = 3;
  ImPlotTimeUnit_Hr = 4;
  ImPlotTimeUnit_Day = 5;
  ImPlotTimeUnit_Mo = 6;
  ImPlotTimeUnit_Yr = 7;
  ImPlotTimeUnit_COUNT = 8;

type
  ImPlotDateFmt_ = Integer;
  PImPlotDateFmt_ = ^ImPlotDateFmt_;

const
  ImPlotDateFmt_None = 0;
  ImPlotDateFmt_DayMo = 1;
  ImPlotDateFmt_DayMoYr = 2;
  ImPlotDateFmt_MoYr = 3;
  ImPlotDateFmt_Mo = 4;
  ImPlotDateFmt_Yr = 5;

type
  ImPlotTimeFmt_ = Integer;
  PImPlotTimeFmt_ = ^ImPlotTimeFmt_;

const
  ImPlotTimeFmt_None = 0;
  ImPlotTimeFmt_Us = 1;
  ImPlotTimeFmt_SUs = 2;
  ImPlotTimeFmt_SMs = 3;
  ImPlotTimeFmt_S = 4;
  ImPlotTimeFmt_MinSMs = 5;
  ImPlotTimeFmt_HrMinSMs = 6;
  ImPlotTimeFmt_HrMinS = 7;
  ImPlotTimeFmt_HrMin = 8;
  ImPlotTimeFmt_Hr = 9;

type
  // Forward declarations
  PPAnsiChar = ^PAnsiChar;
  PPByte = ^PByte;
  PNativeUInt = ^NativeUInt;
  PImVector_const_charPtr = ^ImVector_const_charPtr;
  PImVec2 = ^ImVec2;
  PImVec4 = ^ImVec4;
  PImGuiTableSortSpecs = ^ImGuiTableSortSpecs;
  PImGuiTableColumnSortSpecs = ^ImGuiTableColumnSortSpecs;
  PImGuiStyle = ^ImGuiStyle;
  PImGuiKeyData = ^ImGuiKeyData;
  PImVector_ImWchar = ^ImVector_ImWchar;
  PImGuiIO = ^ImGuiIO;
  PImGuiInputTextCallbackData = ^ImGuiInputTextCallbackData;
  PImGuiSizeCallbackData = ^ImGuiSizeCallbackData;
  PImGuiWindowClass = ^ImGuiWindowClass;
  PImGuiPayload = ^ImGuiPayload;
  PImGuiOnceUponAFrame = ^ImGuiOnceUponAFrame;
  PImGuiTextRange = ^ImGuiTextRange;
  PImVector_ImGuiTextRange = ^ImVector_ImGuiTextRange;
  PImGuiTextFilter = ^ImGuiTextFilter;
  PImVector_char = ^ImVector_char;
  PImGuiTextBuffer = ^ImGuiTextBuffer;
  PImGuiStoragePair = ^ImGuiStoragePair;
  PImVector_ImGuiStoragePair = ^ImVector_ImGuiStoragePair;
  PImGuiStorage = ^ImGuiStorage;
  PImGuiListClipper = ^ImGuiListClipper;
  PImColor = ^ImColor;
  PImVector_ImGuiSelectionRequest = ^ImVector_ImGuiSelectionRequest;
  PImGuiMultiSelectIO = ^ImGuiMultiSelectIO;
  PImGuiSelectionRequest = ^ImGuiSelectionRequest;
  PImGuiSelectionBasicStorage = ^ImGuiSelectionBasicStorage;
  PImGuiSelectionExternalStorage = ^ImGuiSelectionExternalStorage;
  PImDrawCmd = ^ImDrawCmd;
  PImDrawVert = ^ImDrawVert;
  PImDrawCmdHeader = ^ImDrawCmdHeader;
  PImVector_ImDrawCmd = ^ImVector_ImDrawCmd;
  PImVector_ImDrawIdx = ^ImVector_ImDrawIdx;
  PImDrawChannel = ^ImDrawChannel;
  PImVector_ImDrawChannel = ^ImVector_ImDrawChannel;
  PImDrawListSplitter = ^ImDrawListSplitter;
  PImVector_ImDrawVert = ^ImVector_ImDrawVert;
  PImVector_ImVec2 = ^ImVector_ImVec2;
  PImVector_ImVec4 = ^ImVector_ImVec4;
  PImVector_ImTextureID = ^ImVector_ImTextureID;
  PImDrawList = ^ImDrawList;
  PPImDrawList = ^PImDrawList;
  PImVector_ImDrawListPtr = ^ImVector_ImDrawListPtr;
  PImDrawData = ^ImDrawData;
  PImFontConfig = ^ImFontConfig;
  PImFontGlyph = ^ImFontGlyph;
  PImVector_ImU32 = ^ImVector_ImU32;
  PImFontGlyphRangesBuilder = ^ImFontGlyphRangesBuilder;
  PImFontAtlasCustomRect = ^ImFontAtlasCustomRect;
  PImVector_ImFontPtr = ^ImVector_ImFontPtr;
  PImVector_ImFontAtlasCustomRect = ^ImVector_ImFontAtlasCustomRect;
  PImVector_ImFontConfig = ^ImVector_ImFontConfig;
  PImFontAtlas = ^ImFontAtlas;
  PImVector_float = ^ImVector_float;
  PImVector_ImFontGlyph = ^ImVector_ImFontGlyph;
  PImFont = ^ImFont;
  PPImFont = ^PImFont;
  PImGuiViewport = ^ImGuiViewport;
  PPImGuiViewport = ^PImGuiViewport;
  PImVector_ImGuiPlatformMonitor = ^ImVector_ImGuiPlatformMonitor;
  PImVector_ImGuiViewportPtr = ^ImVector_ImGuiViewportPtr;
  PImGuiPlatformIO = ^ImGuiPlatformIO;
  PImGuiPlatformMonitor = ^ImGuiPlatformMonitor;
  PImGuiPlatformImeData = ^ImGuiPlatformImeData;
  PStbUndoRecord = ^StbUndoRecord;
  PStbUndoState = ^StbUndoState;
  PSTB_TexteditState = ^STB_TexteditState;
  PStbTexteditRow = ^StbTexteditRow;
  PImVec1 = ^ImVec1;
  PImVec2ih = ^ImVec2ih;
  PImRect = ^ImRect;
  PImBitVector = ^ImBitVector;
  PImVector_int = ^ImVector_int;
  PImGuiTextIndex = ^ImGuiTextIndex;
  PImDrawListSharedData = ^ImDrawListSharedData;
  PImDrawDataBuilder = ^ImDrawDataBuilder;
  PImGuiDataVarInfo = ^ImGuiDataVarInfo;
  PImGuiDataTypeStorage = ^ImGuiDataTypeStorage;
  PImGuiDataTypeInfo = ^ImGuiDataTypeInfo;
  PImGuiColorMod = ^ImGuiColorMod;
  PImGuiStyleMod = ^ImGuiStyleMod;
  PImGuiComboPreviewData = ^ImGuiComboPreviewData;
  PImGuiGroupData = ^ImGuiGroupData;
  PImGuiMenuColumns = ^ImGuiMenuColumns;
  PImGuiInputTextDeactivatedState = ^ImGuiInputTextDeactivatedState;
  PImGuiInputTextState = ^ImGuiInputTextState;
  PImGuiNextWindowData = ^ImGuiNextWindowData;
  PImGuiNextItemData = ^ImGuiNextItemData;
  PImGuiLastItemData = ^ImGuiLastItemData;
  PImGuiTreeNodeStackData = ^ImGuiTreeNodeStackData;
  PImGuiStackSizes = ^ImGuiStackSizes;
  PImGuiWindowStackData = ^ImGuiWindowStackData;
  PImGuiShrinkWidthItem = ^ImGuiShrinkWidthItem;
  PImGuiPtrOrIndex = ^ImGuiPtrOrIndex;
  PImGuiPopupData = ^ImGuiPopupData;
  PImBitArray_ImGuiKey_NamedKey_COUNT__lessImGuiKey_NamedKey_BEGIN = ^ImBitArray_ImGuiKey_NamedKey_COUNT__lessImGuiKey_NamedKey_BEGIN;
  PImGuiInputEventMousePos = ^ImGuiInputEventMousePos;
  PImGuiInputEventMouseWheel = ^ImGuiInputEventMouseWheel;
  PImGuiInputEventMouseButton = ^ImGuiInputEventMouseButton;
  PImGuiInputEventMouseViewport = ^ImGuiInputEventMouseViewport;
  PImGuiInputEventKey = ^ImGuiInputEventKey;
  PImGuiInputEventText = ^ImGuiInputEventText;
  PImGuiInputEventAppFocused = ^ImGuiInputEventAppFocused;
  PImGuiInputEvent = ^ImGuiInputEvent;
  PImGuiKeyRoutingData = ^ImGuiKeyRoutingData;
  PImVector_ImGuiKeyRoutingData = ^ImVector_ImGuiKeyRoutingData;
  PImGuiKeyRoutingTable = ^ImGuiKeyRoutingTable;
  PImGuiKeyOwnerData = ^ImGuiKeyOwnerData;
  PImGuiListClipperRange = ^ImGuiListClipperRange;
  PImVector_ImGuiListClipperRange = ^ImVector_ImGuiListClipperRange;
  PImGuiListClipperData = ^ImGuiListClipperData;
  PImGuiNavItemData = ^ImGuiNavItemData;
  PImGuiFocusScopeData = ^ImGuiFocusScopeData;
  PImGuiTypingSelectRequest = ^ImGuiTypingSelectRequest;
  PImGuiTypingSelectState = ^ImGuiTypingSelectState;
  PImGuiOldColumnData = ^ImGuiOldColumnData;
  PImVector_ImGuiOldColumnData = ^ImVector_ImGuiOldColumnData;
  PImGuiOldColumns = ^ImGuiOldColumns;
  PImGuiBoxSelectState = ^ImGuiBoxSelectState;
  PImGuiMultiSelectTempData = ^ImGuiMultiSelectTempData;
  PImGuiMultiSelectState = ^ImGuiMultiSelectState;
  PImVector_ImGuiWindowPtr = ^ImVector_ImGuiWindowPtr;
  PImGuiDockNode = ^ImGuiDockNode;
  PImGuiWindowDockStyle = ^ImGuiWindowDockStyle;
  PImVector_ImGuiDockRequest = ^ImVector_ImGuiDockRequest;
  PImVector_ImGuiDockNodeSettings = ^ImVector_ImGuiDockNodeSettings;
  PImGuiDockContext = ^ImGuiDockContext;
  PImGuiViewportP = ^ImGuiViewportP;
  PPImGuiViewportP = ^PImGuiViewportP;
  PImGuiWindowSettings = ^ImGuiWindowSettings;
  PImGuiSettingsHandler = ^ImGuiSettingsHandler;
  PImGuiLocEntry = ^ImGuiLocEntry;
  PImGuiDebugAllocEntry = ^ImGuiDebugAllocEntry;
  PImGuiDebugAllocInfo = ^ImGuiDebugAllocInfo;
  PImGuiMetricsConfig = ^ImGuiMetricsConfig;
  PImGuiStackLevelInfo = ^ImGuiStackLevelInfo;
  PImVector_ImGuiStackLevelInfo = ^ImVector_ImGuiStackLevelInfo;
  PImGuiIDStackTool = ^ImGuiIDStackTool;
  PImGuiContextHook = ^ImGuiContextHook;
  PImVector_ImGuiInputEvent = ^ImVector_ImGuiInputEvent;
  PImVector_ImGuiWindowStackData = ^ImVector_ImGuiWindowStackData;
  PImVector_ImGuiColorMod = ^ImVector_ImGuiColorMod;
  PImVector_ImGuiStyleMod = ^ImVector_ImGuiStyleMod;
  PImVector_ImGuiFocusScopeData = ^ImVector_ImGuiFocusScopeData;
  PImVector_ImGuiItemFlags = ^ImVector_ImGuiItemFlags;
  PImVector_ImGuiGroupData = ^ImVector_ImGuiGroupData;
  PImVector_ImGuiPopupData = ^ImVector_ImGuiPopupData;
  PImVector_ImGuiTreeNodeStackData = ^ImVector_ImGuiTreeNodeStackData;
  PImVector_ImGuiViewportPPtr = ^ImVector_ImGuiViewportPPtr;
  PImVector_unsigned_char = ^ImVector_unsigned_char;
  PImVector_ImGuiListClipperData = ^ImVector_ImGuiListClipperData;
  PImVector_ImGuiTableTempData = ^ImVector_ImGuiTableTempData;
  PImVector_ImGuiTable = ^ImVector_ImGuiTable;
  PImPool_ImGuiTable = ^ImPool_ImGuiTable;
  PImVector_ImGuiTabBar = ^ImVector_ImGuiTabBar;
  PImPool_ImGuiTabBar = ^ImPool_ImGuiTabBar;
  PImVector_ImGuiPtrOrIndex = ^ImVector_ImGuiPtrOrIndex;
  PImVector_ImGuiShrinkWidthItem = ^ImVector_ImGuiShrinkWidthItem;
  PImVector_ImGuiMultiSelectTempData = ^ImVector_ImGuiMultiSelectTempData;
  PImVector_ImGuiMultiSelectState = ^ImVector_ImGuiMultiSelectState;
  PImPool_ImGuiMultiSelectState = ^ImPool_ImGuiMultiSelectState;
  PImVector_ImGuiID = ^ImVector_ImGuiID;
  PImVector_ImGuiSettingsHandler = ^ImVector_ImGuiSettingsHandler;
  PImChunkStream_ImGuiWindowSettings = ^ImChunkStream_ImGuiWindowSettings;
  PImChunkStream_ImGuiTableSettings = ^ImChunkStream_ImGuiTableSettings;
  PImVector_ImGuiContextHook = ^ImVector_ImGuiContextHook;
  PImGuiContext = ^ImGuiContext;
  PImGuiWindowTempData = ^ImGuiWindowTempData;
  PImVector_ImGuiOldColumns = ^ImVector_ImGuiOldColumns;
  PImGuiWindow = ^ImGuiWindow;
  PPImGuiWindow = ^PImGuiWindow;
  PImGuiTabItem = ^ImGuiTabItem;
  PImVector_ImGuiTabItem = ^ImVector_ImGuiTabItem;
  PImGuiTabBar = ^ImGuiTabBar;
  PImGuiTableColumn = ^ImGuiTableColumn;
  PImGuiTableCellData = ^ImGuiTableCellData;
  PImGuiTableHeaderData = ^ImGuiTableHeaderData;
  PImGuiTableInstanceData = ^ImGuiTableInstanceData;
  PImSpan_ImGuiTableColumn = ^ImSpan_ImGuiTableColumn;
  PImSpan_ImGuiTableColumnIdx = ^ImSpan_ImGuiTableColumnIdx;
  PImSpan_ImGuiTableCellData = ^ImSpan_ImGuiTableCellData;
  PImVector_ImGuiTableInstanceData = ^ImVector_ImGuiTableInstanceData;
  PImVector_ImGuiTableColumnSortSpecs = ^ImVector_ImGuiTableColumnSortSpecs;
  PImGuiTable = ^ImGuiTable;
  PImVector_ImGuiTableHeaderData = ^ImVector_ImGuiTableHeaderData;
  PImGuiTableTempData = ^ImGuiTableTempData;
  PImGuiTableColumnSettings = ^ImGuiTableColumnSettings;
  PImGuiTableSettings = ^ImGuiTableSettings;
  PImFontBuilderIO = ^ImFontBuilderIO;
  PImVector_ImS16 = ^ImVector_ImS16;
  PImVector_ImS32 = ^ImVector_ImS32;
  PImVector_ImS64 = ^ImVector_ImS64;
  PImVector_ImS8 = ^ImVector_ImS8;
  PImVector_ImU16 = ^ImVector_ImU16;
  PImVector_ImU64 = ^ImVector_ImU64;
  PImVector_ImU8 = ^ImVector_ImU8;
  PImPlotPoint = ^ImPlotPoint;
  PImPlotRange = ^ImPlotRange;
  PImPlotRect = ^ImPlotRect;
  PImPlotStyle = ^ImPlotStyle;
  PImPlotInputMap = ^ImPlotInputMap;
  PImPlotDateTimeSpec = ^ImPlotDateTimeSpec;
  PImPlotTime = ^ImPlotTime;
  PImVector_bool = ^ImVector_bool;
  PImPlotColormapData = ^ImPlotColormapData;
  PImPlotPointError = ^ImPlotPointError;
  PImPlotAnnotation = ^ImPlotAnnotation;
  PImVector_ImPlotAnnotation = ^ImVector_ImPlotAnnotation;
  PImPlotAnnotationCollection = ^ImPlotAnnotationCollection;
  PImPlotTag = ^ImPlotTag;
  PImVector_ImPlotTag = ^ImVector_ImPlotTag;
  PImPlotTagCollection = ^ImPlotTagCollection;
  PImPlotTick = ^ImPlotTick;
  PImVector_ImPlotTick = ^ImVector_ImPlotTick;
  PImPlotTicker = ^ImPlotTicker;
  PImPlotAxis = ^ImPlotAxis;
  PImPlotAlignmentData = ^ImPlotAlignmentData;
  PImPlotItem = ^ImPlotItem;
  PImPlotLegend = ^ImPlotLegend;
  PImVector_ImPlotItem = ^ImVector_ImPlotItem;
  PImPool_ImPlotItem = ^ImPool_ImPlotItem;
  PImPlotItemGroup = ^ImPlotItemGroup;
  PImPlotPlot = ^ImPlotPlot;
  PImVector_ImPlotAlignmentData = ^ImVector_ImPlotAlignmentData;
  PImVector_ImPlotRange = ^ImVector_ImPlotRange;
  PImPlotSubplot = ^ImPlotSubplot;
  PImPlotNextPlotData = ^ImPlotNextPlotData;
  PImPlotNextItemData = ^ImPlotNextItemData;
  PImVector_ImPlotPlot = ^ImVector_ImPlotPlot;
  PImPool_ImPlotPlot = ^ImPool_ImPlotPlot;
  PImVector_ImPlotSubplot = ^ImVector_ImPlotSubplot;
  PImPool_ImPlotSubplot = ^ImPool_ImPlotSubplot;
  PImVector_ImPlotColormap = ^ImVector_ImPlotColormap;
  PImVector_double = ^ImVector_double;
  PImPool_ImPlotAlignmentData = ^ImPool_ImPlotAlignmentData;
  PImPlotContext = ^ImPlotContext;
  PFormatter_Time_Data = ^Formatter_Time_Data;

  ImU64 = UInt64;
  PImU64 = ^ImU64;
  PImGuiDockRequest = Pointer;
  PPImGuiDockRequest = ^PImGuiDockRequest;
  PImGuiDockNodeSettings = Pointer;
  PPImGuiDockNodeSettings = ^PImGuiDockNodeSettings;
  PImGuiInputTextDeactivateData = Pointer;
  PPImGuiInputTextDeactivateData = ^PImGuiInputTextDeactivateData;
  PImGuiTableColumnsSettings = Pointer;
  PPImGuiTableColumnsSettings = ^PImGuiTableColumnsSettings;

  ImVector_const_charPtr = record
    Size: Integer;
    Capacity: Integer;
    Data: PPAnsiChar;
  end;

  ImGuiID = Cardinal;
  PImGuiID = ^ImGuiID;
  ImS8 = AnsiChar;
  PImS8 = ^ImS8;
  ImU8 = Byte;
  PImU8 = ^ImU8;
  ImS16 = Smallint;
  PImS16 = ^ImS16;
  ImU16 = Word;
  PImU16 = ^ImU16;
  ImS32 = Integer;
  PImS32 = ^ImS32;
  ImU32 = Cardinal;
  PImU32 = ^ImU32;
  ImS64 = Int64;
  PImS64 = ^ImS64;
  ImGuiCol = Integer;
  ImGuiCond = Integer;
  ImGuiDataType = Integer;
  ImGuiMouseButton = Integer;
  ImGuiMouseCursor = Integer;
  ImGuiStyleVar = Integer;
  ImGuiTableBgTarget = Integer;
  ImDrawFlags = Integer;
  ImDrawListFlags = Integer;
  ImFontAtlasFlags = Integer;
  ImGuiBackendFlags = Integer;
  ImGuiButtonFlags = Integer;
  PImGuiButtonFlags = ^ImGuiButtonFlags;
  ImGuiChildFlags = Integer;
  ImGuiColorEditFlags = Integer;
  ImGuiConfigFlags = Integer;
  ImGuiComboFlags = Integer;
  ImGuiDockNodeFlags = Integer;
  ImGuiDragDropFlags = Integer;
  ImGuiFocusedFlags = Integer;
  ImGuiHoveredFlags = Integer;
  ImGuiInputFlags = Integer;
  ImGuiInputTextFlags = Integer;
  ImGuiItemFlags = Integer;
  PImGuiItemFlags = ^ImGuiItemFlags;
  ImGuiKeyChord = Integer;
  ImGuiPopupFlags = Integer;
  ImGuiMultiSelectFlags = Integer;
  ImGuiSelectableFlags = Integer;
  ImGuiSliderFlags = Integer;
  ImGuiTabBarFlags = Integer;
  ImGuiTabItemFlags = Integer;
  ImGuiTableFlags = Integer;
  ImGuiTableColumnFlags = Integer;
  ImGuiTableRowFlags = Integer;
  ImGuiTreeNodeFlags = Integer;
  ImGuiViewportFlags = Integer;
  ImGuiWindowFlags = Integer;
  ImTextureID = Pointer;
  PImTextureID = ^ImTextureID;
  ImDrawIdx = Word;
  PImDrawIdx = ^ImDrawIdx;
  ImWchar32 = Cardinal;
  ImWchar16 = Word;
  ImWchar = ImWchar16;
  PImWchar = ^ImWchar;
  ImGuiSelectionUserData = ImS64;

  ImGuiInputTextCallback = function(data: PImGuiInputTextCallbackData): Integer; cdecl;

  ImGuiSizeCallback = procedure(data: PImGuiSizeCallbackData); cdecl;

  ImGuiMemAllocFunc = function(sz: NativeUInt; user_data: Pointer): Pointer; cdecl;
  PImGuiMemAllocFunc = ^ImGuiMemAllocFunc;

  ImGuiMemFreeFunc = procedure(ptr: Pointer; user_data: Pointer); cdecl;
  PImGuiMemFreeFunc = ^ImGuiMemFreeFunc;

  ImVec2 = record
    x: Single;
    y: Single;
    class operator Add(lhs, rhs: ImVec2): ImVec2;
    class operator Subtract(lhs, rhs: ImVec2): ImVec2;
  end;

  ImVec4 = record
    x: Single;
    y: Single;
    z: Single;
    w: Single;
  end;

  ImGuiTableSortSpecs = record
    Specs: PImGuiTableColumnSortSpecs;
    SpecsCount: Integer;
    SpecsDirty: Boolean;
  end;

  ImGuiTableColumnSortSpecs = record
    ColumnUserID: ImGuiID;
    ColumnIndex: ImS16;
    SortOrder: ImS16;
    SortDirection: ImGuiSortDirection;
  end;

  ImGuiStyle = record
    Alpha: Single;
    DisabledAlpha: Single;
    WindowPadding: ImVec2;
    WindowRounding: Single;
    WindowBorderSize: Single;
    WindowMinSize: ImVec2;
    WindowTitleAlign: ImVec2;
    WindowMenuButtonPosition: ImGuiDir;
    ChildRounding: Single;
    ChildBorderSize: Single;
    PopupRounding: Single;
    PopupBorderSize: Single;
    FramePadding: ImVec2;
    FrameRounding: Single;
    FrameBorderSize: Single;
    ItemSpacing: ImVec2;
    ItemInnerSpacing: ImVec2;
    CellPadding: ImVec2;
    TouchExtraPadding: ImVec2;
    IndentSpacing: Single;
    ColumnsMinSpacing: Single;
    ScrollbarSize: Single;
    ScrollbarRounding: Single;
    GrabMinSize: Single;
    GrabRounding: Single;
    LogSliderDeadzone: Single;
    TabRounding: Single;
    TabBorderSize: Single;
    TabMinWidthForCloseButton: Single;
    TabBarBorderSize: Single;
    TabBarOverlineSize: Single;
    TableAngledHeadersAngle: Single;
    TableAngledHeadersTextAlign: ImVec2;
    ColorButtonPosition: ImGuiDir;
    ButtonTextAlign: ImVec2;
    SelectableTextAlign: ImVec2;
    SeparatorTextBorderSize: Single;
    SeparatorTextAlign: ImVec2;
    SeparatorTextPadding: ImVec2;
    DisplayWindowPadding: ImVec2;
    DisplaySafeAreaPadding: ImVec2;
    DockingSeparatorSize: Single;
    MouseCursorScale: Single;
    AntiAliasedLines: Boolean;
    AntiAliasedLinesUseTex: Boolean;
    AntiAliasedFill: Boolean;
    CurveTessellationTol: Single;
    CircleTessellationMaxError: Single;
    Colors: array [0..57] of ImVec4;
    HoverStationaryDelay: Single;
    HoverDelayShort: Single;
    HoverDelayNormal: Single;
    HoverFlagsForTooltipMouse: ImGuiHoveredFlags;
    HoverFlagsForTooltipNav: ImGuiHoveredFlags;
  end;

  ImGuiKeyData = record
    Down: Boolean;
    DownDuration: Single;
    DownDurationPrev: Single;
    AnalogValue: Single;
  end;

  ImVector_ImWchar = record
    Size: Integer;
    Capacity: Integer;
    Data: PImWchar;
  end;

  ImGuiIO = record
    ConfigFlags: ImGuiConfigFlags;
    BackendFlags: ImGuiBackendFlags;
    DisplaySize: ImVec2;
    DeltaTime: Single;
    IniSavingRate: Single;
    IniFilename: PAnsiChar;
    LogFilename: PAnsiChar;
    UserData: Pointer;
    Fonts: PImFontAtlas;
    FontGlobalScale: Single;
    FontAllowUserScaling: Boolean;
    FontDefault: PImFont;
    DisplayFramebufferScale: ImVec2;
    ConfigDockingNoSplit: Boolean;
    ConfigDockingWithShift: Boolean;
    ConfigDockingAlwaysTabBar: Boolean;
    ConfigDockingTransparentPayload: Boolean;
    ConfigViewportsNoAutoMerge: Boolean;
    ConfigViewportsNoTaskBarIcon: Boolean;
    ConfigViewportsNoDecoration: Boolean;
    ConfigViewportsNoDefaultParent: Boolean;
    MouseDrawCursor: Boolean;
    ConfigMacOSXBehaviors: Boolean;
    ConfigNavSwapGamepadButtons: Boolean;
    ConfigInputTrickleEventQueue: Boolean;
    ConfigInputTextCursorBlink: Boolean;
    ConfigInputTextEnterKeepActive: Boolean;
    ConfigDragClickToInputText: Boolean;
    ConfigWindowsResizeFromEdges: Boolean;
    ConfigWindowsMoveFromTitleBarOnly: Boolean;
    ConfigMemoryCompactTimer: Single;
    MouseDoubleClickTime: Single;
    MouseDoubleClickMaxDist: Single;
    MouseDragThreshold: Single;
    KeyRepeatDelay: Single;
    KeyRepeatRate: Single;
    ConfigDebugIsDebuggerPresent: Boolean;
    ConfigDebugBeginReturnValueOnce: Boolean;
    ConfigDebugBeginReturnValueLoop: Boolean;
    ConfigDebugIgnoreFocusLoss: Boolean;
    ConfigDebugIniSettings: Boolean;
    BackendPlatformName: PAnsiChar;
    BackendRendererName: PAnsiChar;
    BackendPlatformUserData: Pointer;
    BackendRendererUserData: Pointer;
    BackendLanguageUserData: Pointer;
    GetClipboardTextFn: function(user_data: Pointer): PAnsiChar; cdecl;
    SetClipboardTextFn: procedure(user_data: Pointer; const text: PAnsiChar); cdecl;
    ClipboardUserData: Pointer;
    PlatformOpenInShellFn: function(ctx: PImGuiContext; const path: PAnsiChar): Boolean; cdecl;
    PlatformOpenInShellUserData: Pointer;
    PlatformSetImeDataFn: procedure(ctx: PImGuiContext; viewport: PImGuiViewport; data: PImGuiPlatformImeData); cdecl;
    PlatformLocaleDecimalPoint: ImWchar;
    WantCaptureMouse: Boolean;
    WantCaptureKeyboard: Boolean;
    WantTextInput: Boolean;
    WantSetMousePos: Boolean;
    WantSaveIniSettings: Boolean;
    NavActive: Boolean;
    NavVisible: Boolean;
    Framerate: Single;
    MetricsRenderVertices: Integer;
    MetricsRenderIndices: Integer;
    MetricsRenderWindows: Integer;
    MetricsActiveWindows: Integer;
    MouseDelta: ImVec2;
    Ctx: PImGuiContext;
    MousePos: ImVec2;
    MouseDown: array [0..4] of Boolean;
    MouseWheel: Single;
    MouseWheelH: Single;
    MouseSource: ImGuiMouseSource;
    MouseHoveredViewport: ImGuiID;
    KeyCtrl: Boolean;
    KeyShift: Boolean;
    KeyAlt: Boolean;
    KeySuper: Boolean;
    KeyMods: ImGuiKeyChord;
    KeysData: array [0..153] of ImGuiKeyData;
    WantCaptureMouseUnlessPopupClose: Boolean;
    MousePosPrev: ImVec2;
    MouseClickedPos: array [0..4] of ImVec2;
    MouseClickedTime: array [0..4] of Double;
    MouseClicked: array [0..4] of Boolean;
    MouseDoubleClicked: array [0..4] of Boolean;
    MouseClickedCount: array [0..4] of ImU16;
    MouseClickedLastCount: array [0..4] of ImU16;
    MouseReleased: array [0..4] of Boolean;
    MouseDownOwned: array [0..4] of Boolean;
    MouseDownOwnedUnlessPopupClose: array [0..4] of Boolean;
    MouseWheelRequestAxisSwap: Boolean;
    MouseCtrlLeftAsRightClick: Boolean;
    MouseDownDuration: array [0..4] of Single;
    MouseDownDurationPrev: array [0..4] of Single;
    MouseDragMaxDistanceAbs: array [0..4] of ImVec2;
    MouseDragMaxDistanceSqr: array [0..4] of Single;
    PenPressure: Single;
    AppFocusLost: Boolean;
    AppAcceptingEvents: Boolean;
    BackendUsingLegacyKeyArrays: ImS8;
    BackendUsingLegacyNavInputArray: Boolean;
    InputQueueSurrogate: ImWchar16;
    InputQueueCharacters: ImVector_ImWchar;
  end;

  ImGuiInputTextCallbackData = record
    Ctx: PImGuiContext;
    EventFlag: ImGuiInputTextFlags;
    Flags: ImGuiInputTextFlags;
    UserData: Pointer;
    EventChar: ImWchar;
    EventKey: ImGuiKey;
    Buf: PAnsiChar;
    BufTextLen: Integer;
    BufSize: Integer;
    BufDirty: Boolean;
    CursorPos: Integer;
    SelectionStart: Integer;
    SelectionEnd: Integer;
  end;

  ImGuiSizeCallbackData = record
    UserData: Pointer;
    Pos: ImVec2;
    CurrentSize: ImVec2;
    DesiredSize: ImVec2;
  end;

  ImGuiWindowClass = record
    ClassId: ImGuiID;
    ParentViewportId: ImGuiID;
    FocusRouteParentWindowId: ImGuiID;
    ViewportFlagsOverrideSet: ImGuiViewportFlags;
    ViewportFlagsOverrideClear: ImGuiViewportFlags;
    TabItemFlagsOverrideSet: ImGuiTabItemFlags;
    DockNodeFlagsOverrideSet: ImGuiDockNodeFlags;
    DockingAlwaysTabBar: Boolean;
    DockingAllowUnclassed: Boolean;
  end;

  ImGuiPayload = record
    Data: Pointer;
    DataSize: Integer;
    SourceId: ImGuiID;
    SourceParentId: ImGuiID;
    DataFrameCount: Integer;
    DataType: array [0..32] of AnsiChar;
    Preview: Boolean;
    Delivery: Boolean;
  end;

  ImGuiOnceUponAFrame = record
    RefFrame: Integer;
  end;

  ImGuiTextRange = record
    b: PAnsiChar;
    e: PAnsiChar;
  end;

  ImVector_ImGuiTextRange = record
    Size: Integer;
    Capacity: Integer;
    Data: PImGuiTextRange;
  end;

  ImGuiTextFilter = record
    InputBuf: array [0..255] of AnsiChar;
    Filters: ImVector_ImGuiTextRange;
    CountGrep: Integer;
  end;

  ImVector_char = record
    Size: Integer;
    Capacity: Integer;
    Data: PAnsiChar;
  end;

  ImGuiTextBuffer = record
    Buf: ImVector_char;
  end;

  P_anonymous_type_1 = ^_anonymous_type_1;
  _anonymous_type_1 = record
    case Integer of
      0: (val_i: Integer);
      1: (val_f: Single);
      2: (val_p: Pointer);
  end;

  ImGuiStoragePair = record
    key: ImGuiID;
    f2: _anonymous_type_1;
  end;

  ImVector_ImGuiStoragePair = record
    Size: Integer;
    Capacity: Integer;
    Data: PImGuiStoragePair;
  end;

  ImGuiStorage = record
    Data: ImVector_ImGuiStoragePair;
  end;

  ImGuiListClipper = record
    Ctx: PImGuiContext;
    DisplayStart: Integer;
    DisplayEnd: Integer;
    ItemsCount: Integer;
    ItemsHeight: Single;
    StartPosY: Single;
    StartSeekOffsetY: Double;
    TempData: Pointer;
  end;

  ImColor = record
    Value: ImVec4;
  end;

  ImVector_ImGuiSelectionRequest = record
    Size: Integer;
    Capacity: Integer;
    Data: PImGuiSelectionRequest;
  end;

  ImGuiMultiSelectIO = record
    Requests: ImVector_ImGuiSelectionRequest;
    RangeSrcItem: ImGuiSelectionUserData;
    NavIdItem: ImGuiSelectionUserData;
    NavIdSelected: Boolean;
    RangeSrcReset: Boolean;
    ItemsCount: Integer;
  end;

  ImGuiSelectionRequest = record
    Type_: ImGuiSelectionRequestType;
    Selected: Boolean;
    RangeDirection: ImS8;
    RangeFirstItem: ImGuiSelectionUserData;
    RangeLastItem: ImGuiSelectionUserData;
  end;

  ImGuiSelectionBasicStorage = record
    Size: Integer;
    PreserveOrder: Boolean;
    UserData: Pointer;
    AdapterIndexToStorageId: function(self: PImGuiSelectionBasicStorage; idx: Integer): ImGuiID; cdecl;
    _SelectionOrder: Integer;
    _Storage: ImGuiStorage;
  end;

  ImGuiSelectionExternalStorage = record
    UserData: Pointer;
    AdapterSetItemSelected: procedure(self: PImGuiSelectionExternalStorage; idx: Integer; selected: Boolean); cdecl;
  end;

  ImDrawCallback = procedure(const parent_list: PImDrawList; const cmd: PImDrawCmd); cdecl;

  ImDrawCmd = record
    ClipRect: ImVec4;
    TextureId: ImTextureID;
    VtxOffset: Cardinal;
    IdxOffset: Cardinal;
    ElemCount: Cardinal;
    UserCallback: ImDrawCallback;
    UserCallbackData: Pointer;
  end;

  ImDrawVert = record
    pos: ImVec2;
    uv: ImVec2;
    col: ImU32;
  end;

  ImDrawCmdHeader = record
    ClipRect: ImVec4;
    TextureId: ImTextureID;
    VtxOffset: Cardinal;
  end;

  ImVector_ImDrawCmd = record
    Size: Integer;
    Capacity: Integer;
    Data: PImDrawCmd;
  end;

  ImVector_ImDrawIdx = record
    Size: Integer;
    Capacity: Integer;
    Data: PImDrawIdx;
  end;

  ImDrawChannel = record
    _CmdBuffer: ImVector_ImDrawCmd;
    _IdxBuffer: ImVector_ImDrawIdx;
  end;

  ImVector_ImDrawChannel = record
    Size: Integer;
    Capacity: Integer;
    Data: PImDrawChannel;
  end;

  ImDrawListSplitter = record
    _Current: Integer;
    _Count: Integer;
    _Channels: ImVector_ImDrawChannel;
  end;

  ImVector_ImDrawVert = record
    Size: Integer;
    Capacity: Integer;
    Data: PImDrawVert;
  end;

  ImVector_ImVec2 = record
    Size: Integer;
    Capacity: Integer;
    Data: PImVec2;
  end;

  ImVector_ImVec4 = record
    Size: Integer;
    Capacity: Integer;
    Data: PImVec4;
  end;

  ImVector_ImTextureID = record
    Size: Integer;
    Capacity: Integer;
    Data: PImTextureID;
  end;

  ImDrawList = record
    CmdBuffer: ImVector_ImDrawCmd;
    IdxBuffer: ImVector_ImDrawIdx;
    VtxBuffer: ImVector_ImDrawVert;
    Flags: ImDrawListFlags;
    _VtxCurrentIdx: Cardinal;
    _Data: PImDrawListSharedData;
    _VtxWritePtr: PImDrawVert;
    _IdxWritePtr: PImDrawIdx;
    _Path: ImVector_ImVec2;
    _CmdHeader: ImDrawCmdHeader;
    _Splitter: ImDrawListSplitter;
    _ClipRectStack: ImVector_ImVec4;
    _TextureIdStack: ImVector_ImTextureID;
    _FringeScale: Single;
    _OwnerName: PAnsiChar;
  end;

  ImVector_ImDrawListPtr = record
    Size: Integer;
    Capacity: Integer;
    Data: PPImDrawList;
  end;

  ImDrawData = record
    Valid: Boolean;
    CmdListsCount: Integer;
    TotalIdxCount: Integer;
    TotalVtxCount: Integer;
    CmdLists: ImVector_ImDrawListPtr;
    DisplayPos: ImVec2;
    DisplaySize: ImVec2;
    FramebufferScale: ImVec2;
    OwnerViewport: PImGuiViewport;
  end;

  ImFontConfig = record
    FontData: Pointer;
    FontDataSize: Integer;
    FontDataOwnedByAtlas: Boolean;
    FontNo: Integer;
    SizePixels: Single;
    OversampleH: Integer;
    OversampleV: Integer;
    PixelSnapH: Boolean;
    GlyphExtraSpacing: ImVec2;
    GlyphOffset: ImVec2;
    GlyphRanges: PImWchar;
    GlyphMinAdvanceX: Single;
    GlyphMaxAdvanceX: Single;
    MergeMode: Boolean;
    FontBuilderFlags: Cardinal;
    RasterizerMultiply: Single;
    RasterizerDensity: Single;
    EllipsisChar: ImWchar;
    Name: array [0..39] of AnsiChar;
    DstFont: PImFont;
  end;

  ImFontGlyph = record
  private
    Data0: Cardinal;
    function GetData0Value(const AIndex: Integer): Cardinal;
    procedure SetData0Value(const AIndex: Integer; const AValue: Cardinal);
  public
    property Colored: Cardinal index $0001 read GetData0Value write SetData0Value; // 1 bits at offset 0 in Data0
    property Visible: Cardinal index $0101 read GetData0Value write SetData0Value; // 1 bits at offset 1 in Data0
    property Codepoint: Cardinal index $021E read GetData0Value write SetData0Value; // 30 bits at offset 2 in Data0
  var
    AdvanceX: Single;
    X0: Single;
    Y0: Single;
    X1: Single;
    Y1: Single;
    U0: Single;
    V0: Single;
    U1: Single;
    V1: Single;
  end;

  ImVector_ImU32 = record
    Size: Integer;
    Capacity: Integer;
    Data: PImU32;
  end;

  ImFontGlyphRangesBuilder = record
    UsedChars: ImVector_ImU32;
  end;

  ImFontAtlasCustomRect = record
    Width: Word;
    Height: Word;
    X: Word;
    Y: Word;
    GlyphID: Cardinal;
    GlyphAdvanceX: Single;
    GlyphOffset: ImVec2;
    Font: PImFont;
  end;

  ImVector_ImFontPtr = record
    Size: Integer;
    Capacity: Integer;
    Data: PPImFont;
  end;

  ImVector_ImFontAtlasCustomRect = record
    Size: Integer;
    Capacity: Integer;
    Data: PImFontAtlasCustomRect;
  end;

  ImVector_ImFontConfig = record
    Size: Integer;
    Capacity: Integer;
    Data: PImFontConfig;
  end;

  ImFontAtlas = record
    Flags: ImFontAtlasFlags;
    TexID: ImTextureID;
    TexDesiredWidth: Integer;
    TexGlyphPadding: Integer;
    Locked: Boolean;
    UserData: Pointer;
    TexReady: Boolean;
    TexPixelsUseColors: Boolean;
    TexPixelsAlpha8: PByte;
    TexPixelsRGBA32: PCardinal;
    TexWidth: Integer;
    TexHeight: Integer;
    TexUvScale: ImVec2;
    TexUvWhitePixel: ImVec2;
    Fonts: ImVector_ImFontPtr;
    CustomRects: ImVector_ImFontAtlasCustomRect;
    ConfigData: ImVector_ImFontConfig;
    TexUvLines: array [0..63] of ImVec4;
    FontBuilderIO: PImFontBuilderIO;
    FontBuilderFlags: Cardinal;
    PackIdMouseCursors: Integer;
    PackIdLines: Integer;
  end;

  ImVector_float = record
    Size: Integer;
    Capacity: Integer;
    Data: PSingle;
  end;

  ImVector_ImFontGlyph = record
    Size: Integer;
    Capacity: Integer;
    Data: PImFontGlyph;
  end;

  ImFont = record
    IndexAdvanceX: ImVector_float;
    FallbackAdvanceX: Single;
    FontSize: Single;
    IndexLookup: ImVector_ImWchar;
    Glyphs: ImVector_ImFontGlyph;
    FallbackGlyph: PImFontGlyph;
    ContainerAtlas: PImFontAtlas;
    ConfigData: PImFontConfig;
    ConfigDataCount: Smallint;
    FallbackChar: ImWchar;
    EllipsisChar: ImWchar;
    EllipsisCharCount: Smallint;
    EllipsisWidth: Single;
    EllipsisCharStep: Single;
    DirtyLookupTables: Boolean;
    Scale: Single;
    Ascent: Single;
    Descent: Single;
    MetricsTotalSurface: Integer;
    Used4kPagesMap: array [0..1] of ImU8;
  end;

  ImGuiViewport = record
    ID: ImGuiID;
    Flags: ImGuiViewportFlags;
    Pos: ImVec2;
    Size: ImVec2;
    WorkPos: ImVec2;
    WorkSize: ImVec2;
    DpiScale: Single;
    ParentViewportId: ImGuiID;
    DrawData: PImDrawData;
    RendererUserData: Pointer;
    PlatformUserData: Pointer;
    PlatformHandle: Pointer;
    PlatformHandleRaw: Pointer;
    PlatformWindowCreated: Boolean;
    PlatformRequestMove: Boolean;
    PlatformRequestResize: Boolean;
    PlatformRequestClose: Boolean;
  end;

  ImVector_ImGuiPlatformMonitor = record
    Size: Integer;
    Capacity: Integer;
    Data: PImGuiPlatformMonitor;
  end;

  ImVector_ImGuiViewportPtr = record
    Size: Integer;
    Capacity: Integer;
    Data: PPImGuiViewport;
  end;

  ImGuiPlatformIO = record
    Platform_CreateWindow: procedure(vp: PImGuiViewport); cdecl;
    Platform_DestroyWindow: procedure(vp: PImGuiViewport); cdecl;
    Platform_ShowWindow: procedure(vp: PImGuiViewport); cdecl;
    Platform_SetWindowPos: procedure(vp: PImGuiViewport; pos: ImVec2); cdecl;
    Platform_GetWindowPos: function(vp: PImGuiViewport): ImVec2; cdecl;
    Platform_SetWindowSize: procedure(vp: PImGuiViewport; size: ImVec2); cdecl;
    Platform_GetWindowSize: function(vp: PImGuiViewport): ImVec2; cdecl;
    Platform_SetWindowFocus: procedure(vp: PImGuiViewport); cdecl;
    Platform_GetWindowFocus: function(vp: PImGuiViewport): Boolean; cdecl;
    Platform_GetWindowMinimized: function(vp: PImGuiViewport): Boolean; cdecl;
    Platform_SetWindowTitle: procedure(vp: PImGuiViewport; const str: PAnsiChar); cdecl;
    Platform_SetWindowAlpha: procedure(vp: PImGuiViewport; alpha: Single); cdecl;
    Platform_UpdateWindow: procedure(vp: PImGuiViewport); cdecl;
    Platform_RenderWindow: procedure(vp: PImGuiViewport; render_arg: Pointer); cdecl;
    Platform_SwapBuffers: procedure(vp: PImGuiViewport; render_arg: Pointer); cdecl;
    Platform_GetWindowDpiScale: function(vp: PImGuiViewport): Single; cdecl;
    Platform_OnChangedViewport: procedure(vp: PImGuiViewport); cdecl;
    Platform_CreateVkSurface: function(vp: PImGuiViewport; vk_inst: ImU64; const vk_allocators: Pointer; out_vk_surface: PImU64): Integer; cdecl;
    Renderer_CreateWindow: procedure(vp: PImGuiViewport); cdecl;
    Renderer_DestroyWindow: procedure(vp: PImGuiViewport); cdecl;
    Renderer_SetWindowSize: procedure(vp: PImGuiViewport; size: ImVec2); cdecl;
    Renderer_RenderWindow: procedure(vp: PImGuiViewport; render_arg: Pointer); cdecl;
    Renderer_SwapBuffers: procedure(vp: PImGuiViewport; render_arg: Pointer); cdecl;
    Monitors: ImVector_ImGuiPlatformMonitor;
    Viewports: ImVector_ImGuiViewportPtr;
  end;

  ImGuiPlatformMonitor = record
    MainPos: ImVec2;
    MainSize: ImVec2;
    WorkPos: ImVec2;
    WorkSize: ImVec2;
    DpiScale: Single;
    PlatformHandle: Pointer;
  end;

  ImGuiPlatformImeData = record
    WantVisible: Boolean;
    InputPos: ImVec2;
    InputLineHeight: Single;
  end;

  ImGuiDataAuthority = Integer;
  ImGuiLayoutType = Integer;
  ImGuiActivateFlags = Integer;
  ImGuiDebugLogFlags = Integer;
  ImGuiFocusRequestFlags = Integer;
  ImGuiItemStatusFlags = Integer;
  ImGuiOldColumnFlags = Integer;
  ImGuiNavHighlightFlags = Integer;
  ImGuiNavMoveFlags = Integer;
  ImGuiNextItemDataFlags = Integer;
  ImGuiNextWindowDataFlags = Integer;
  ImGuiScrollFlags = Integer;
  ImGuiSeparatorFlags = Integer;
  ImGuiTextFlags = Integer;
  ImGuiTooltipFlags = Integer;
  ImGuiTypingSelectFlags = Integer;
  ImGuiWindowRefreshFlags = Integer;

  ImGuiErrorLogCallback = procedure(user_data: Pointer; const fmt: PAnsiChar) varargs; cdecl;

  StbUndoRecord = record
    where: Integer;
    insert_length: Integer;
    delete_length: Integer;
    char_storage: Integer;
  end;

  StbUndoState = record
    undo_rec: array [0..98] of StbUndoRecord;
    undo_char: array [0..998] of ImWchar;
    undo_point: Smallint;
    redo_point: Smallint;
    undo_char_point: Integer;
    redo_char_point: Integer;
  end;

  STB_TexteditState = record
    cursor: Integer;
    select_start: Integer;
    select_end: Integer;
    insert_mode: Byte;
    row_count_per_page: Integer;
    cursor_at_end_of_line: Byte;
    initialized: Byte;
    has_preferred_x: Byte;
    single_line: Byte;
    padding1: Byte;
    padding2: Byte;
    padding3: Byte;
    preferred_x: Single;
    undostate: StbUndoState;
  end;

  StbTexteditRow = record
    x0: Single;
    x1: Single;
    baseline_y_delta: Single;
    ymin: Single;
    ymax: Single;
    num_chars: Integer;
  end;

  ImFileHandle = PPointer;

  ImVec1 = record
    x: Single;
  end;

  ImVec2ih = record
    x: Smallint;
    y: Smallint;
  end;

  ImRect = record
    Min: ImVec2;
    Max: ImVec2;
  end;

  ImBitArrayPtr = PImU32;

  ImBitVector = record
    Storage: ImVector_ImU32;
  end;

  ImPoolIdx = Integer;

  ImVector_int = record
    Size: Integer;
    Capacity: Integer;
    Data: PInteger;
  end;

  ImGuiTextIndex = record
    LineOffsets: ImVector_int;
    EndOffset: Integer;
  end;

  ImDrawListSharedData = record
    TexUvWhitePixel: ImVec2;
    Font: PImFont;
    FontSize: Single;
    FontScale: Single;
    CurveTessellationTol: Single;
    CircleSegmentMaxError: Single;
    ClipRectFullscreen: ImVec4;
    InitialFlags: ImDrawListFlags;
    TempBuffer: ImVector_ImVec2;
    ArcFastVtx: array [0..47] of ImVec2;
    ArcFastRadiusCutoff: Single;
    CircleSegmentCounts: array [0..63] of ImU8;
    TexUvLines: PImVec4;
  end;

  ImDrawDataBuilder = record
    Layers: array [0..1] of PImVector_ImDrawListPtr;
    LayerData1: ImVector_ImDrawListPtr;
  end;

  ImGuiDataVarInfo = record
    Type_: ImGuiDataType;
    Count: ImU32;
    Offset: ImU32;
  end;

  ImGuiDataTypeStorage = record
    Data: array [0..7] of ImU8;
  end;

  ImGuiDataTypeInfo = record
    Size: NativeUInt;
    Name: PAnsiChar;
    PrintFmt: PAnsiChar;
    ScanFmt: PAnsiChar;
  end;

  ImGuiColorMod = record
    Col: ImGuiCol;
    BackupValue: ImVec4;
  end;

  P_anonymous_type_2 = ^_anonymous_type_2;
  _anonymous_type_2 = record
    case Integer of
      0: (BackupInt: array [0..1] of Integer);
      1: (BackupFloat: array [0..1] of Single);
  end;

  ImGuiStyleMod = record
    VarIdx: ImGuiStyleVar;
    f2: _anonymous_type_2;
  end;

  ImGuiComboPreviewData = record
    PreviewRect: ImRect;
    BackupCursorPos: ImVec2;
    BackupCursorMaxPos: ImVec2;
    BackupCursorPosPrevLine: ImVec2;
    BackupPrevLineTextBaseOffset: Single;
    BackupLayout: ImGuiLayoutType;
  end;

  ImGuiGroupData = record
    WindowID: ImGuiID;
    BackupCursorPos: ImVec2;
    BackupCursorMaxPos: ImVec2;
    BackupCursorPosPrevLine: ImVec2;
    BackupIndent: ImVec1;
    BackupGroupOffset: ImVec1;
    BackupCurrLineSize: ImVec2;
    BackupCurrLineTextBaseOffset: Single;
    BackupActiveIdIsAlive: ImGuiID;
    BackupActiveIdPreviousFrameIsAlive: Boolean;
    BackupHoveredIdIsAlive: Boolean;
    BackupIsSameLine: Boolean;
    EmitItem: Boolean;
  end;

  ImGuiMenuColumns = record
    TotalWidth: ImU32;
    NextTotalWidth: ImU32;
    Spacing: ImU16;
    OffsetIcon: ImU16;
    OffsetLabel: ImU16;
    OffsetShortcut: ImU16;
    OffsetMark: ImU16;
    Widths: array [0..3] of ImU16;
  end;

  ImGuiInputTextDeactivatedState = record
    ID: ImGuiID;
    TextA: ImVector_char;
  end;

  ImGuiInputTextState = record
    Ctx: PImGuiContext;
    ID: ImGuiID;
    CurLenW: Integer;
    CurLenA: Integer;
    TextW: ImVector_ImWchar;
    TextA: ImVector_char;
    InitialTextA: ImVector_char;
    TextAIsValid: Boolean;
    BufCapacityA: Integer;
    ScrollX: Single;
    Stb: STB_TexteditState;
    CursorAnim: Single;
    CursorFollow: Boolean;
    SelectedAllMouseLock: Boolean;
    Edited: Boolean;
    Flags: ImGuiInputTextFlags;
    ReloadUserBuf: Boolean;
    ReloadSelectionStart: Integer;
    ReloadSelectionEnd: Integer;
  end;

  ImGuiNextWindowData = record
    Flags: ImGuiNextWindowDataFlags;
    PosCond: ImGuiCond;
    SizeCond: ImGuiCond;
    CollapsedCond: ImGuiCond;
    DockCond: ImGuiCond;
    PosVal: ImVec2;
    PosPivotVal: ImVec2;
    SizeVal: ImVec2;
    ContentSizeVal: ImVec2;
    ScrollVal: ImVec2;
    ChildFlags: ImGuiChildFlags;
    PosUndock: Boolean;
    CollapsedVal: Boolean;
    SizeConstraintRect: ImRect;
    SizeCallback: ImGuiSizeCallback;
    SizeCallbackUserData: Pointer;
    BgAlphaVal: Single;
    ViewportId: ImGuiID;
    DockId: ImGuiID;
    WindowClass: ImGuiWindowClass;
    MenuBarOffsetMinVal: ImVec2;
    RefreshFlagsVal: ImGuiWindowRefreshFlags;
  end;

  ImGuiNextItemData = record
    Flags: ImGuiNextItemDataFlags;
    ItemFlags: ImGuiItemFlags;
    FocusScopeId: ImGuiID;
    SelectionUserData: ImGuiSelectionUserData;
    Width: Single;
    Shortcut: ImGuiKeyChord;
    ShortcutFlags: ImGuiInputFlags;
    OpenVal: Boolean;
    OpenCond: ImU8;
    RefVal: ImGuiDataTypeStorage;
    StorageId: ImGuiID;
  end;

  ImGuiLastItemData = record
    ID: ImGuiID;
    InFlags: ImGuiItemFlags;
    StatusFlags: ImGuiItemStatusFlags;
    Rect: ImRect;
    NavRect: ImRect;
    DisplayRect: ImRect;
    ClipRect: ImRect;
    Shortcut: ImGuiKeyChord;
  end;

  ImGuiTreeNodeStackData = record
    ID: ImGuiID;
    TreeFlags: ImGuiTreeNodeFlags;
    InFlags: ImGuiItemFlags;
    NavRect: ImRect;
  end;

  ImGuiStackSizes = record
    SizeOfIDStack: Smallint;
    SizeOfColorStack: Smallint;
    SizeOfStyleVarStack: Smallint;
    SizeOfFontStack: Smallint;
    SizeOfFocusScopeStack: Smallint;
    SizeOfGroupStack: Smallint;
    SizeOfItemFlagsStack: Smallint;
    SizeOfBeginPopupStack: Smallint;
    SizeOfDisabledStack: Smallint;
  end;

  ImGuiWindowStackData = record
    Window: PImGuiWindow;
    ParentLastItemDataBackup: ImGuiLastItemData;
    StackSizesOnBegin: ImGuiStackSizes;
    DisabledOverrideReenable: Boolean;
  end;

  ImGuiShrinkWidthItem = record
    Index: Integer;
    Width: Single;
    InitialWidth: Single;
  end;

  ImGuiPtrOrIndex = record
    Ptr: Pointer;
    Index: Integer;
  end;

  ImGuiPopupData = record
    PopupId: ImGuiID;
    Window: PImGuiWindow;
    RestoreNavWindow: PImGuiWindow;
    ParentNavLayer: Integer;
    OpenFrameCount: Integer;
    OpenParentId: ImGuiID;
    OpenPopupPos: ImVec2;
    OpenMousePos: ImVec2;
  end;

  ImBitArray_ImGuiKey_NamedKey_COUNT__lessImGuiKey_NamedKey_BEGIN = record
    Storage: array [0..4] of ImU32;
  end;

  ImBitArrayForNamedKeys = ImBitArray_ImGuiKey_NamedKey_COUNT__lessImGuiKey_NamedKey_BEGIN;

  ImGuiInputEventMousePos = record
    PosX: Single;
    PosY: Single;
    MouseSource: ImGuiMouseSource;
  end;

  ImGuiInputEventMouseWheel = record
    WheelX: Single;
    WheelY: Single;
    MouseSource: ImGuiMouseSource;
  end;

  ImGuiInputEventMouseButton = record
    Button: Integer;
    Down: Boolean;
    MouseSource: ImGuiMouseSource;
  end;

  ImGuiInputEventMouseViewport = record
    HoveredViewportID: ImGuiID;
  end;

  ImGuiInputEventKey = record
    Key: ImGuiKey;
    Down: Boolean;
    AnalogValue: Single;
  end;

  ImGuiInputEventText = record
    Char: Cardinal;
  end;

  ImGuiInputEventAppFocused = record
    Focused: Boolean;
  end;

  P_anonymous_type_3 = ^_anonymous_type_3;
  _anonymous_type_3 = record
    case Integer of
      0: (MousePos: ImGuiInputEventMousePos);
      1: (MouseWheel: ImGuiInputEventMouseWheel);
      2: (MouseButton: ImGuiInputEventMouseButton);
      3: (MouseViewport: ImGuiInputEventMouseViewport);
      4: (Key: ImGuiInputEventKey);
      5: (Text: ImGuiInputEventText);
      6: (AppFocused: ImGuiInputEventAppFocused);
  end;

  ImGuiInputEvent = record
    Type_: ImGuiInputEventType;
    Source: ImGuiInputSource;
    EventId: ImU32;
    f4: _anonymous_type_3;
    AddedByTestEngine: Boolean;
  end;

  ImGuiKeyRoutingIndex = ImS16;

  ImGuiKeyRoutingData = record
    NextEntryIndex: ImGuiKeyRoutingIndex;
    Mods: ImU16;
    RoutingCurrScore: ImU8;
    RoutingNextScore: ImU8;
    RoutingCurr: ImGuiID;
    RoutingNext: ImGuiID;
  end;

  ImVector_ImGuiKeyRoutingData = record
    Size: Integer;
    Capacity: Integer;
    Data: PImGuiKeyRoutingData;
  end;

  ImGuiKeyRoutingTable = record
    Index: array [0..153] of ImGuiKeyRoutingIndex;
    Entries: ImVector_ImGuiKeyRoutingData;
    EntriesNext: ImVector_ImGuiKeyRoutingData;
  end;

  ImGuiKeyOwnerData = record
    OwnerCurr: ImGuiID;
    OwnerNext: ImGuiID;
    LockThisFrame: Boolean;
    LockUntilRelease: Boolean;
  end;

  ImGuiListClipperRange = record
    Min: Integer;
    Max: Integer;
    PosToIndexConvert: Boolean;
    PosToIndexOffsetMin: ImS8;
    PosToIndexOffsetMax: ImS8;
  end;

  ImVector_ImGuiListClipperRange = record
    Size: Integer;
    Capacity: Integer;
    Data: PImGuiListClipperRange;
  end;

  ImGuiListClipperData = record
    ListClipper: PImGuiListClipper;
    LossynessOffset: Single;
    StepNo: Integer;
    ItemsFrozen: Integer;
    Ranges: ImVector_ImGuiListClipperRange;
  end;

  ImGuiNavItemData = record
    Window: PImGuiWindow;
    ID: ImGuiID;
    FocusScopeId: ImGuiID;
    RectRel: ImRect;
    InFlags: ImGuiItemFlags;
    DistBox: Single;
    DistCenter: Single;
    DistAxial: Single;
    SelectionUserData: ImGuiSelectionUserData;
  end;

  ImGuiFocusScopeData = record
    ID: ImGuiID;
    WindowID: ImGuiID;
  end;

  ImGuiTypingSelectRequest = record
    Flags: ImGuiTypingSelectFlags;
    SearchBufferLen: Integer;
    SearchBuffer: PAnsiChar;
    SelectRequest: Boolean;
    SingleCharMode: Boolean;
    SingleCharSize: ImS8;
  end;

  ImGuiTypingSelectState = record
    Request: ImGuiTypingSelectRequest;
    SearchBuffer: array [0..63] of AnsiChar;
    FocusScope: ImGuiID;
    LastRequestFrame: Integer;
    LastRequestTime: Single;
    SingleCharModeLock: Boolean;
  end;

  ImGuiOldColumnData = record
    OffsetNorm: Single;
    OffsetNormBeforeResize: Single;
    Flags: ImGuiOldColumnFlags;
    ClipRect: ImRect;
  end;

  ImVector_ImGuiOldColumnData = record
    Size: Integer;
    Capacity: Integer;
    Data: PImGuiOldColumnData;
  end;

  ImGuiOldColumns = record
    ID: ImGuiID;
    Flags: ImGuiOldColumnFlags;
    IsFirstFrame: Boolean;
    IsBeingResized: Boolean;
    Current: Integer;
    Count: Integer;
    OffMinX: Single;
    OffMaxX: Single;
    LineMinY: Single;
    LineMaxY: Single;
    HostCursorPosY: Single;
    HostCursorMaxPosX: Single;
    HostInitialClipRect: ImRect;
    HostBackupClipRect: ImRect;
    HostBackupParentWorkRect: ImRect;
    Columns: ImVector_ImGuiOldColumnData;
    Splitter: ImDrawListSplitter;
  end;

  ImGuiBoxSelectState = record
    ID: ImGuiID;
    IsActive: Boolean;
    IsStarting: Boolean;
    IsStartedFromVoid: Boolean;
    IsStartedSetNavIdOnce: Boolean;
    RequestClear: Boolean;
  private
    Data0: Cardinal;
    function GetData0Value(const AIndex: Integer): Cardinal;
    procedure SetData0Value(const AIndex: Integer; const AValue: Cardinal);
  public
    property KeyMods: Cardinal index $0010 read GetData0Value write SetData0Value; // 16 bits at offset 0 in Data0
  var
    StartPosRel: ImVec2;
    EndPosRel: ImVec2;
    ScrollAccum: ImVec2;
    Window: PImGuiWindow;
    UnclipMode: Boolean;
    UnclipRect: ImRect;
    BoxSelectRectPrev: ImRect;
    BoxSelectRectCurr: ImRect;
  end;

  ImGuiMultiSelectTempData = record
    IO: ImGuiMultiSelectIO;
    Storage: PImGuiMultiSelectState;
    FocusScopeId: ImGuiID;
    Flags: ImGuiMultiSelectFlags;
    ScopeRectMin: ImVec2;
    BackupCursorMaxPos: ImVec2;
    LastSubmittedItem: ImGuiSelectionUserData;
    BoxSelectId: ImGuiID;
    KeyMods: ImGuiKeyChord;
    LoopRequestSetAll: ImS8;
    IsEndIO: Boolean;
    IsFocused: Boolean;
    IsKeyboardSetRange: Boolean;
    NavIdPassedBy: Boolean;
    RangeSrcPassedBy: Boolean;
    RangeDstPassedBy: Boolean;
  end;

  ImGuiMultiSelectState = record
    Window: PImGuiWindow;
    ID: ImGuiID;
    LastFrameActive: Integer;
    LastSelectionSize: Integer;
    RangeSelected: ImS8;
    NavIdSelected: ImS8;
    RangeSrcItem: ImGuiSelectionUserData;
    NavIdItem: ImGuiSelectionUserData;
  end;

  ImVector_ImGuiWindowPtr = record
    Size: Integer;
    Capacity: Integer;
    Data: PPImGuiWindow;
  end;

  ImGuiDockNode = record
    ID: ImGuiID;
    SharedFlags: ImGuiDockNodeFlags;
    LocalFlags: ImGuiDockNodeFlags;
    LocalFlagsInWindows: ImGuiDockNodeFlags;
    MergedFlags: ImGuiDockNodeFlags;
    State: ImGuiDockNodeState;
    ParentNode: PImGuiDockNode;
    ChildNodes: array [0..1] of PImGuiDockNode;
    Windows: ImVector_ImGuiWindowPtr;
    TabBar: PImGuiTabBar;
    Pos: ImVec2;
    Size: ImVec2;
    SizeRef: ImVec2;
    SplitAxis: ImGuiAxis;
    WindowClass: ImGuiWindowClass;
    LastBgColor: ImU32;
    HostWindow: PImGuiWindow;
    VisibleWindow: PImGuiWindow;
    CentralNode: PImGuiDockNode;
    OnlyNodeWithWindows: PImGuiDockNode;
    CountNodeWithWindows: Integer;
    LastFrameAlive: Integer;
    LastFrameActive: Integer;
    LastFrameFocused: Integer;
    LastFocusedNodeId: ImGuiID;
    SelectedTabId: ImGuiID;
    WantCloseTabId: ImGuiID;
    RefViewportId: ImGuiID;
  private
    Data0: Cardinal;
    function GetData0Value(const AIndex: Integer): Cardinal;
    procedure SetData0Value(const AIndex: Integer; const AValue: Cardinal);
  public
    property AuthorityForPos: Cardinal index $0003 read GetData0Value write SetData0Value; // 3 bits at offset 0 in Data0
    property AuthorityForSize: Cardinal index $0303 read GetData0Value write SetData0Value; // 3 bits at offset 3 in Data0
    property AuthorityForViewport: Cardinal index $0603 read GetData0Value write SetData0Value; // 3 bits at offset 6 in Data0
    property IsVisible: Cardinal index $901 read GetData0Value write SetData0Value; // 1 bits at offset 9 in Data0
    property IsFocused: Cardinal index $A01 read GetData0Value write SetData0Value; // 1 bits at offset 10 in Data0
    property IsBgDrawnThisFrame: Cardinal index $B01 read GetData0Value write SetData0Value; // 1 bits at offset 11 in Data0
    property HasCloseButton: Cardinal index $C01 read GetData0Value write SetData0Value; // 1 bits at offset 12 in Data0
    property HasWindowMenuButton: Cardinal index $D01 read GetData0Value write SetData0Value; // 1 bits at offset 13 in Data0
    property HasCentralNodeChild: Cardinal index $E01 read GetData0Value write SetData0Value; // 1 bits at offset 14 in Data0
    property WantCloseAll: Cardinal index $F01 read GetData0Value write SetData0Value; // 1 bits at offset 15 in Data0
    property WantLockSizeOnce: Cardinal index $1001 read GetData0Value write SetData0Value; // 1 bits at offset 16 in Data0
    property WantMouseMove: Cardinal index $1101 read GetData0Value write SetData0Value; // 1 bits at offset 17 in Data0
    property WantHiddenTabBarUpdate: Cardinal index $1201 read GetData0Value write SetData0Value; // 1 bits at offset 18 in Data0
    property WantHiddenTabBarToggle: Cardinal index $1301 read GetData0Value write SetData0Value; // 1 bits at offset 19 in Data0
  end;

  ImGuiWindowDockStyle = record
    Colors: array [0..7] of ImU32;
  end;

  ImVector_ImGuiDockRequest = record
    Size: Integer;
    Capacity: Integer;
    Data: PImGuiDockRequest;
  end;

  ImVector_ImGuiDockNodeSettings = record
    Size: Integer;
    Capacity: Integer;
    Data: PImGuiDockNodeSettings;
  end;

  ImGuiDockContext = record
    Nodes: ImGuiStorage;
    Requests: ImVector_ImGuiDockRequest;
    NodesSettings: ImVector_ImGuiDockNodeSettings;
    WantFullRebuild: Boolean;
  end;

  ImGuiViewportP = record
    _ImGuiViewport: ImGuiViewport;
    Window: PImGuiWindow;
    Idx: Integer;
    LastFrameActive: Integer;
    LastFocusedStampCount: Integer;
    LastNameHash: ImGuiID;
    LastPos: ImVec2;
    Alpha: Single;
    LastAlpha: Single;
    LastFocusedHadNavWindow: Boolean;
    PlatformMonitor: Smallint;
    BgFgDrawListsLastFrame: array [0..1] of Integer;
    BgFgDrawLists: array [0..1] of PImDrawList;
    DrawDataP: ImDrawData;
    DrawDataBuilder: ImDrawDataBuilder;
    LastPlatformPos: ImVec2;
    LastPlatformSize: ImVec2;
    LastRendererSize: ImVec2;
    WorkOffsetMin: ImVec2;
    WorkOffsetMax: ImVec2;
    BuildWorkOffsetMin: ImVec2;
    BuildWorkOffsetMax: ImVec2;
  end;

  ImGuiWindowSettings = record
    ID: ImGuiID;
    Pos: ImVec2ih;
    Size: ImVec2ih;
    ViewportPos: ImVec2ih;
    ViewportId: ImGuiID;
    DockId: ImGuiID;
    ClassId: ImGuiID;
    DockOrder: Smallint;
    Collapsed: Boolean;
    IsChild: Boolean;
    WantApply: Boolean;
    WantDelete: Boolean;
  end;

  ImGuiSettingsHandler = record
    TypeName: PAnsiChar;
    TypeHash: ImGuiID;
    ClearAllFn: procedure(ctx: PImGuiContext; handler: PImGuiSettingsHandler); cdecl;
    ReadInitFn: procedure(ctx: PImGuiContext; handler: PImGuiSettingsHandler); cdecl;
    ReadOpenFn: function(ctx: PImGuiContext; handler: PImGuiSettingsHandler; const name: PAnsiChar): Pointer; cdecl;
    ReadLineFn: procedure(ctx: PImGuiContext; handler: PImGuiSettingsHandler; entry: Pointer; const line: PAnsiChar); cdecl;
    ApplyAllFn: procedure(ctx: PImGuiContext; handler: PImGuiSettingsHandler); cdecl;
    WriteAllFn: procedure(ctx: PImGuiContext; handler: PImGuiSettingsHandler; out_buf: PImGuiTextBuffer); cdecl;
    UserData: Pointer;
  end;

  ImGuiLocEntry = record
    Key: ImGuiLocKey;
    Text: PAnsiChar;
  end;

  ImGuiDebugAllocEntry = record
    FrameCount: Integer;
    AllocCount: ImS16;
    FreeCount: ImS16;
  end;

  ImGuiDebugAllocInfo = record
    TotalAllocCount: Integer;
    TotalFreeCount: Integer;
    LastEntriesIdx: ImS16;
    LastEntriesBuf: array [0..5] of ImGuiDebugAllocEntry;
  end;

  ImGuiMetricsConfig = record
    ShowDebugLog: Boolean;
    ShowIDStackTool: Boolean;
    ShowWindowsRects: Boolean;
    ShowWindowsBeginOrder: Boolean;
    ShowTablesRects: Boolean;
    ShowDrawCmdMesh: Boolean;
    ShowDrawCmdBoundingBoxes: Boolean;
    ShowTextEncodingViewer: Boolean;
    ShowAtlasTintedWithTextColor: Boolean;
    ShowDockingNodes: Boolean;
    ShowWindowsRectsType: Integer;
    ShowTablesRectsType: Integer;
    HighlightMonitorIdx: Integer;
    HighlightViewportID: ImGuiID;
  end;

  ImGuiStackLevelInfo = record
    ID: ImGuiID;
    QueryFrameCount: ImS8;
    QuerySuccess: Boolean;
  private
    Data0: Cardinal;
    function GetData0Value(const AIndex: Integer): Cardinal;
    procedure SetData0Value(const AIndex: Integer; const AValue: Cardinal);
  public
    property DataType: Cardinal index $0008 read GetData0Value write SetData0Value; // 8 bits at offset 0 in Data0
  var
    Desc: array [0..56] of AnsiChar;
  end;

  ImVector_ImGuiStackLevelInfo = record
    Size: Integer;
    Capacity: Integer;
    Data: PImGuiStackLevelInfo;
  end;

  ImGuiIDStackTool = record
    LastActiveFrame: Integer;
    StackLevel: Integer;
    QueryId: ImGuiID;
    Results: ImVector_ImGuiStackLevelInfo;
    CopyToClipboardOnCtrlC: Boolean;
    CopyToClipboardLastTime: Single;
  end;

  ImGuiContextHookCallback = procedure(ctx: PImGuiContext; hook: PImGuiContextHook); cdecl;

  ImGuiContextHook = record
    HookId: ImGuiID;
    Type_: ImGuiContextHookType;
    Owner: ImGuiID;
    Callback: ImGuiContextHookCallback;
    UserData: Pointer;
  end;

  ImVector_ImGuiInputEvent = record
    Size: Integer;
    Capacity: Integer;
    Data: PImGuiInputEvent;
  end;

  ImVector_ImGuiWindowStackData = record
    Size: Integer;
    Capacity: Integer;
    Data: PImGuiWindowStackData;
  end;

  ImVector_ImGuiColorMod = record
    Size: Integer;
    Capacity: Integer;
    Data: PImGuiColorMod;
  end;

  ImVector_ImGuiStyleMod = record
    Size: Integer;
    Capacity: Integer;
    Data: PImGuiStyleMod;
  end;

  ImVector_ImGuiFocusScopeData = record
    Size: Integer;
    Capacity: Integer;
    Data: PImGuiFocusScopeData;
  end;

  ImVector_ImGuiItemFlags = record
    Size: Integer;
    Capacity: Integer;
    Data: PImGuiItemFlags;
  end;

  ImVector_ImGuiGroupData = record
    Size: Integer;
    Capacity: Integer;
    Data: PImGuiGroupData;
  end;

  ImVector_ImGuiPopupData = record
    Size: Integer;
    Capacity: Integer;
    Data: PImGuiPopupData;
  end;

  ImVector_ImGuiTreeNodeStackData = record
    Size: Integer;
    Capacity: Integer;
    Data: PImGuiTreeNodeStackData;
  end;

  ImVector_ImGuiViewportPPtr = record
    Size: Integer;
    Capacity: Integer;
    Data: PPImGuiViewportP;
  end;

  ImVector_unsigned_char = record
    Size: Integer;
    Capacity: Integer;
    Data: PByte;
  end;

  ImVector_ImGuiListClipperData = record
    Size: Integer;
    Capacity: Integer;
    Data: PImGuiListClipperData;
  end;

  ImVector_ImGuiTableTempData = record
    Size: Integer;
    Capacity: Integer;
    Data: PImGuiTableTempData;
  end;

  ImVector_ImGuiTable = record
    Size: Integer;
    Capacity: Integer;
    Data: PImGuiTable;
  end;

  ImPool_ImGuiTable = record
    Buf: ImVector_ImGuiTable;
    Map: ImGuiStorage;
    FreeIdx: ImPoolIdx;
    AliveCount: ImPoolIdx;
  end;

  ImVector_ImGuiTabBar = record
    Size: Integer;
    Capacity: Integer;
    Data: PImGuiTabBar;
  end;

  ImPool_ImGuiTabBar = record
    Buf: ImVector_ImGuiTabBar;
    Map: ImGuiStorage;
    FreeIdx: ImPoolIdx;
    AliveCount: ImPoolIdx;
  end;

  ImVector_ImGuiPtrOrIndex = record
    Size: Integer;
    Capacity: Integer;
    Data: PImGuiPtrOrIndex;
  end;

  ImVector_ImGuiShrinkWidthItem = record
    Size: Integer;
    Capacity: Integer;
    Data: PImGuiShrinkWidthItem;
  end;

  ImVector_ImGuiMultiSelectTempData = record
    Size: Integer;
    Capacity: Integer;
    Data: PImGuiMultiSelectTempData;
  end;

  ImVector_ImGuiMultiSelectState = record
    Size: Integer;
    Capacity: Integer;
    Data: PImGuiMultiSelectState;
  end;

  ImPool_ImGuiMultiSelectState = record
    Buf: ImVector_ImGuiMultiSelectState;
    Map: ImGuiStorage;
    FreeIdx: ImPoolIdx;
    AliveCount: ImPoolIdx;
  end;

  ImVector_ImGuiID = record
    Size: Integer;
    Capacity: Integer;
    Data: PImGuiID;
  end;

  ImVector_ImGuiSettingsHandler = record
    Size: Integer;
    Capacity: Integer;
    Data: PImGuiSettingsHandler;
  end;

  ImChunkStream_ImGuiWindowSettings = record
    Buf: ImVector_char;
  end;

  ImChunkStream_ImGuiTableSettings = record
    Buf: ImVector_char;
  end;

  ImVector_ImGuiContextHook = record
    Size: Integer;
    Capacity: Integer;
    Data: PImGuiContextHook;
  end;

  ImGuiContext = record
    Initialized: Boolean;
    FontAtlasOwnedByContext: Boolean;
    IO: ImGuiIO;
    PlatformIO: ImGuiPlatformIO;
    Style: ImGuiStyle;
    ConfigFlagsCurrFrame: ImGuiConfigFlags;
    ConfigFlagsLastFrame: ImGuiConfigFlags;
    Font: PImFont;
    FontSize: Single;
    FontBaseSize: Single;
    FontScale: Single;
    CurrentDpiScale: Single;
    DrawListSharedData: ImDrawListSharedData;
    Time: Double;
    FrameCount: Integer;
    FrameCountEnded: Integer;
    FrameCountPlatformEnded: Integer;
    FrameCountRendered: Integer;
    WithinFrameScope: Boolean;
    WithinFrameScopeWithImplicitWindow: Boolean;
    WithinEndChild: Boolean;
    GcCompactAll: Boolean;
    TestEngineHookItems: Boolean;
    TestEngine: Pointer;
    ContextName: array [0..15] of AnsiChar;
    InputEventsQueue: ImVector_ImGuiInputEvent;
    InputEventsTrail: ImVector_ImGuiInputEvent;
    InputEventsNextMouseSource: ImGuiMouseSource;
    InputEventsNextEventId: ImU32;
    Windows: ImVector_ImGuiWindowPtr;
    WindowsFocusOrder: ImVector_ImGuiWindowPtr;
    WindowsTempSortBuffer: ImVector_ImGuiWindowPtr;
    CurrentWindowStack: ImVector_ImGuiWindowStackData;
    WindowsById: ImGuiStorage;
    WindowsActiveCount: Integer;
    WindowsHoverPadding: ImVec2;
    DebugBreakInWindow: ImGuiID;
    CurrentWindow: PImGuiWindow;
    HoveredWindow: PImGuiWindow;
    HoveredWindowUnderMovingWindow: PImGuiWindow;
    HoveredWindowBeforeClear: PImGuiWindow;
    MovingWindow: PImGuiWindow;
    WheelingWindow: PImGuiWindow;
    WheelingWindowRefMousePos: ImVec2;
    WheelingWindowStartFrame: Integer;
    WheelingWindowScrolledFrame: Integer;
    WheelingWindowReleaseTimer: Single;
    WheelingWindowWheelRemainder: ImVec2;
    WheelingAxisAvg: ImVec2;
    DebugHookIdInfo: ImGuiID;
    HoveredId: ImGuiID;
    HoveredIdPreviousFrame: ImGuiID;
    HoveredIdTimer: Single;
    HoveredIdNotActiveTimer: Single;
    HoveredIdAllowOverlap: Boolean;
    HoveredIdIsDisabled: Boolean;
    ItemUnclipByLog: Boolean;
    ActiveId: ImGuiID;
    ActiveIdIsAlive: ImGuiID;
    ActiveIdTimer: Single;
    ActiveIdIsJustActivated: Boolean;
    ActiveIdAllowOverlap: Boolean;
    ActiveIdNoClearOnFocusLoss: Boolean;
    ActiveIdHasBeenPressedBefore: Boolean;
    ActiveIdHasBeenEditedBefore: Boolean;
    ActiveIdHasBeenEditedThisFrame: Boolean;
    ActiveIdFromShortcut: Boolean;
  private
    Data0: Cardinal;
    function GetData0Value(const AIndex: Integer): Cardinal;
    procedure SetData0Value(const AIndex: Integer; const AValue: Cardinal);
  public
    property ActiveIdMouseButton: Cardinal index $0008 read GetData0Value write SetData0Value; // 8 bits at offset 0 in Data0
  var
    ActiveIdClickOffset: ImVec2;
    ActiveIdWindow: PImGuiWindow;
    ActiveIdSource: ImGuiInputSource;
    ActiveIdPreviousFrame: ImGuiID;
    ActiveIdPreviousFrameIsAlive: Boolean;
    ActiveIdPreviousFrameHasBeenEditedBefore: Boolean;
    ActiveIdPreviousFrameWindow: PImGuiWindow;
    LastActiveId: ImGuiID;
    LastActiveIdTimer: Single;
    LastKeyModsChangeTime: Double;
    LastKeyModsChangeFromNoneTime: Double;
    LastKeyboardKeyPressTime: Double;
    KeysMayBeCharInput: ImBitArrayForNamedKeys;
    KeysOwnerData: array [0..153] of ImGuiKeyOwnerData;
    KeysRoutingTable: ImGuiKeyRoutingTable;
    ActiveIdUsingNavDirMask: ImU32;
    ActiveIdUsingAllKeyboardKeys: Boolean;
    DebugBreakInShortcutRouting: ImGuiKeyChord;
    CurrentFocusScopeId: ImGuiID;
    CurrentItemFlags: ImGuiItemFlags;
    DebugLocateId: ImGuiID;
    NextItemData: ImGuiNextItemData;
    LastItemData: ImGuiLastItemData;
    NextWindowData: ImGuiNextWindowData;
    DebugShowGroupRects: Boolean;
    DebugFlashStyleColorIdx: ImGuiCol;
    ColorStack: ImVector_ImGuiColorMod;
    StyleVarStack: ImVector_ImGuiStyleMod;
    FontStack: ImVector_ImFontPtr;
    FocusScopeStack: ImVector_ImGuiFocusScopeData;
    ItemFlagsStack: ImVector_ImGuiItemFlags;
    GroupStack: ImVector_ImGuiGroupData;
    OpenPopupStack: ImVector_ImGuiPopupData;
    BeginPopupStack: ImVector_ImGuiPopupData;
    TreeNodeStack: ImVector_ImGuiTreeNodeStackData;
    Viewports: ImVector_ImGuiViewportPPtr;
    CurrentViewport: PImGuiViewportP;
    MouseViewport: PImGuiViewportP;
    MouseLastHoveredViewport: PImGuiViewportP;
    PlatformLastFocusedViewportId: ImGuiID;
    FallbackMonitor: ImGuiPlatformMonitor;
    PlatformMonitorsFullWorkRect: ImRect;
    ViewportCreatedCount: Integer;
    PlatformWindowsCreatedCount: Integer;
    ViewportFocusedStampCount: Integer;
    NavWindow: PImGuiWindow;
    NavId: ImGuiID;
    NavFocusScopeId: ImGuiID;
    NavLayer: ImGuiNavLayer;
    NavActivateId: ImGuiID;
    NavActivateDownId: ImGuiID;
    NavActivatePressedId: ImGuiID;
    NavActivateFlags: ImGuiActivateFlags;
    NavFocusRoute: ImVector_ImGuiFocusScopeData;
    NavHighlightActivatedId: ImGuiID;
    NavHighlightActivatedTimer: Single;
    NavNextActivateId: ImGuiID;
    NavNextActivateFlags: ImGuiActivateFlags;
    NavInputSource: ImGuiInputSource;
    NavLastValidSelectionUserData: ImGuiSelectionUserData;
    NavIdIsAlive: Boolean;
    NavMousePosDirty: Boolean;
    NavDisableHighlight: Boolean;
    NavDisableMouseHover: Boolean;
    NavAnyRequest: Boolean;
    NavInitRequest: Boolean;
    NavInitRequestFromMove: Boolean;
    NavInitResult: ImGuiNavItemData;
    NavMoveSubmitted: Boolean;
    NavMoveScoringItems: Boolean;
    NavMoveForwardToNextFrame: Boolean;
    NavMoveFlags: ImGuiNavMoveFlags;
    NavMoveScrollFlags: ImGuiScrollFlags;
    NavMoveKeyMods: ImGuiKeyChord;
    NavMoveDir: ImGuiDir;
    NavMoveDirForDebug: ImGuiDir;
    NavMoveClipDir: ImGuiDir;
    NavScoringRect: ImRect;
    NavScoringNoClipRect: ImRect;
    NavScoringDebugCount: Integer;
    NavTabbingDir: Integer;
    NavTabbingCounter: Integer;
    NavMoveResultLocal: ImGuiNavItemData;
    NavMoveResultLocalVisible: ImGuiNavItemData;
    NavMoveResultOther: ImGuiNavItemData;
    NavTabbingResultFirst: ImGuiNavItemData;
    NavJustMovedFromFocusScopeId: ImGuiID;
    NavJustMovedToId: ImGuiID;
    NavJustMovedToFocusScopeId: ImGuiID;
    NavJustMovedToKeyMods: ImGuiKeyChord;
    NavJustMovedToIsTabbing: Boolean;
    NavJustMovedToHasSelectionData: Boolean;
    ConfigNavWindowingKeyNext: ImGuiKeyChord;
    ConfigNavWindowingKeyPrev: ImGuiKeyChord;
    NavWindowingTarget: PImGuiWindow;
    NavWindowingTargetAnim: PImGuiWindow;
    NavWindowingListWindow: PImGuiWindow;
    NavWindowingTimer: Single;
    NavWindowingHighlightAlpha: Single;
    NavWindowingToggleLayer: Boolean;
    NavWindowingToggleKey: ImGuiKey;
    NavWindowingAccumDeltaPos: ImVec2;
    NavWindowingAccumDeltaSize: ImVec2;
    DimBgRatio: Single;
    DragDropActive: Boolean;
    DragDropWithinSource: Boolean;
    DragDropWithinTarget: Boolean;
    DragDropSourceFlags: ImGuiDragDropFlags;
    DragDropSourceFrameCount: Integer;
    DragDropMouseButton: Integer;
    DragDropPayload: ImGuiPayload;
    DragDropTargetRect: ImRect;
    DragDropTargetClipRect: ImRect;
    DragDropTargetId: ImGuiID;
    DragDropAcceptFlags: ImGuiDragDropFlags;
    DragDropAcceptIdCurrRectSurface: Single;
    DragDropAcceptIdCurr: ImGuiID;
    DragDropAcceptIdPrev: ImGuiID;
    DragDropAcceptFrameCount: Integer;
    DragDropHoldJustPressedId: ImGuiID;
    DragDropPayloadBufHeap: ImVector_unsigned_char;
    DragDropPayloadBufLocal: array [0..15] of Byte;
    ClipperTempDataStacked: Integer;
    ClipperTempData: ImVector_ImGuiListClipperData;
    CurrentTable: PImGuiTable;
    DebugBreakInTable: ImGuiID;
    TablesTempDataStacked: Integer;
    TablesTempData: ImVector_ImGuiTableTempData;
    Tables: ImPool_ImGuiTable;
    TablesLastTimeActive: ImVector_float;
    DrawChannelsTempMergeBuffer: ImVector_ImDrawChannel;
    CurrentTabBar: PImGuiTabBar;
    TabBars: ImPool_ImGuiTabBar;
    CurrentTabBarStack: ImVector_ImGuiPtrOrIndex;
    ShrinkWidthBuffer: ImVector_ImGuiShrinkWidthItem;
    BoxSelectState: ImGuiBoxSelectState;
    CurrentMultiSelect: PImGuiMultiSelectTempData;
    MultiSelectTempDataStacked: Integer;
    MultiSelectTempData: ImVector_ImGuiMultiSelectTempData;
    MultiSelectStorage: ImPool_ImGuiMultiSelectState;
    HoverItemDelayId: ImGuiID;
    HoverItemDelayIdPreviousFrame: ImGuiID;
    HoverItemDelayTimer: Single;
    HoverItemDelayClearTimer: Single;
    HoverItemUnlockedStationaryId: ImGuiID;
    HoverWindowUnlockedStationaryId: ImGuiID;
    MouseCursor: ImGuiMouseCursor;
    MouseStationaryTimer: Single;
    MouseLastValidPos: ImVec2;
    InputTextState: ImGuiInputTextState;
    InputTextDeactivatedState: ImGuiInputTextDeactivatedState;
    InputTextPasswordFont: ImFont;
    TempInputId: ImGuiID;
    DataTypeZeroValue: ImGuiDataTypeStorage;
    BeginMenuDepth: Integer;
    BeginComboDepth: Integer;
    ColorEditOptions: ImGuiColorEditFlags;
    ColorEditCurrentID: ImGuiID;
    ColorEditSavedID: ImGuiID;
    ColorEditSavedHue: Single;
    ColorEditSavedSat: Single;
    ColorEditSavedColor: ImU32;
    ColorPickerRef: ImVec4;
    ComboPreviewData: ImGuiComboPreviewData;
    WindowResizeBorderExpectedRect: ImRect;
    WindowResizeRelativeMode: Boolean;
    ScrollbarSeekMode: Smallint;
    ScrollbarClickDeltaToGrabCenter: Single;
    SliderGrabClickOffset: Single;
    SliderCurrentAccum: Single;
    SliderCurrentAccumDirty: Boolean;
    DragCurrentAccumDirty: Boolean;
    DragCurrentAccum: Single;
    DragSpeedDefaultRatio: Single;
    DisabledAlphaBackup: Single;
    DisabledStackSize: Smallint;
    LockMarkEdited: Smallint;
    TooltipOverrideCount: Smallint;
    ClipboardHandlerData: ImVector_char;
    MenusIdSubmittedThisFrame: ImVector_ImGuiID;
    TypingSelectState: ImGuiTypingSelectState;
    PlatformImeData: ImGuiPlatformImeData;
    PlatformImeDataPrev: ImGuiPlatformImeData;
    PlatformImeViewport: ImGuiID;
    DockContext: ImGuiDockContext;
    DockNodeWindowMenuHandler: procedure(ctx: PImGuiContext; node: PImGuiDockNode; tab_bar: PImGuiTabBar); cdecl;
    SettingsLoaded: Boolean;
    SettingsDirtyTimer: Single;
    SettingsIniData: ImGuiTextBuffer;
    SettingsHandlers: ImVector_ImGuiSettingsHandler;
    SettingsWindows: ImChunkStream_ImGuiWindowSettings;
    SettingsTables: ImChunkStream_ImGuiTableSettings;
    Hooks: ImVector_ImGuiContextHook;
    HookIdNext: ImGuiID;
    LocalizationTable: array [0..11] of PAnsiChar;
    LogEnabled: Boolean;
    LogType: ImGuiLogType;
    LogFile: ImFileHandle;
    LogBuffer: ImGuiTextBuffer;
    LogNextPrefix: PAnsiChar;
    LogNextSuffix: PAnsiChar;
    LogLinePosY: Single;
    LogLineFirstItem: Boolean;
    LogDepthRef: Integer;
    LogDepthToExpand: Integer;
    LogDepthToExpandDefault: Integer;
    DebugLogFlags: ImGuiDebugLogFlags;
    DebugLogBuf: ImGuiTextBuffer;
    DebugLogIndex: ImGuiTextIndex;
    DebugLogAutoDisableFlags: ImGuiDebugLogFlags;
    DebugLogAutoDisableFrames: ImU8;
    DebugLocateFrames: ImU8;
    DebugBreakInLocateId: Boolean;
    DebugBreakKeyChord: ImGuiKeyChord;
    DebugBeginReturnValueCullDepth: ImS8;
    DebugItemPickerActive: Boolean;
    DebugItemPickerMouseButton: ImU8;
    DebugItemPickerBreakId: ImGuiID;
    DebugFlashStyleColorTime: Single;
    DebugFlashStyleColorBackup: ImVec4;
    DebugMetricsConfig: ImGuiMetricsConfig;
    DebugIDStackTool: ImGuiIDStackTool;
    DebugAllocInfo: ImGuiDebugAllocInfo;
    DebugHoveredDockNode: PImGuiDockNode;
    FramerateSecPerFrame: array [0..59] of Single;
    FramerateSecPerFrameIdx: Integer;
    FramerateSecPerFrameCount: Integer;
    FramerateSecPerFrameAccum: Single;
    WantCaptureMouseNextFrame: Integer;
    WantCaptureKeyboardNextFrame: Integer;
    WantTextInputNextFrame: Integer;
    TempBuffer: ImVector_char;
    TempKeychordName: array [0..63] of AnsiChar;
  end;

  ImGuiWindowTempData = record
    CursorPos: ImVec2;
    CursorPosPrevLine: ImVec2;
    CursorStartPos: ImVec2;
    CursorMaxPos: ImVec2;
    IdealMaxPos: ImVec2;
    CurrLineSize: ImVec2;
    PrevLineSize: ImVec2;
    CurrLineTextBaseOffset: Single;
    PrevLineTextBaseOffset: Single;
    IsSameLine: Boolean;
    IsSetPos: Boolean;
    Indent: ImVec1;
    ColumnsOffset: ImVec1;
    GroupOffset: ImVec1;
    CursorStartPosLossyness: ImVec2;
    NavLayerCurrent: ImGuiNavLayer;
    NavLayersActiveMask: Smallint;
    NavLayersActiveMaskNext: Smallint;
    NavIsScrollPushableX: Boolean;
    NavHideHighlightOneFrame: Boolean;
    NavWindowHasScrollY: Boolean;
    MenuBarAppending: Boolean;
    MenuBarOffset: ImVec2;
    MenuColumns: ImGuiMenuColumns;
    TreeDepth: Integer;
    TreeHasStackDataDepthMask: ImU32;
    ChildWindows: ImVector_ImGuiWindowPtr;
    StateStorage: PImGuiStorage;
    CurrentColumns: PImGuiOldColumns;
    CurrentTableIdx: Integer;
    LayoutType: ImGuiLayoutType;
    ParentLayoutType: ImGuiLayoutType;
    ModalDimBgColor: ImU32;
    ItemWidth: Single;
    TextWrapPos: Single;
    ItemWidthStack: ImVector_float;
    TextWrapPosStack: ImVector_float;
  end;

  ImVector_ImGuiOldColumns = record
    Size: Integer;
    Capacity: Integer;
    Data: PImGuiOldColumns;
  end;

  ImGuiWindow = record
    Ctx: PImGuiContext;
    Name: PAnsiChar;
    ID: ImGuiID;
    Flags: ImGuiWindowFlags;
    FlagsPreviousFrame: ImGuiWindowFlags;
    ChildFlags: ImGuiChildFlags;
    WindowClass: ImGuiWindowClass;
    Viewport: PImGuiViewportP;
    ViewportId: ImGuiID;
    ViewportPos: ImVec2;
    ViewportAllowPlatformMonitorExtend: Integer;
    Pos: ImVec2;
    Size: ImVec2;
    SizeFull: ImVec2;
    ContentSize: ImVec2;
    ContentSizeIdeal: ImVec2;
    ContentSizeExplicit: ImVec2;
    WindowPadding: ImVec2;
    WindowRounding: Single;
    WindowBorderSize: Single;
    TitleBarHeight: Single;
    MenuBarHeight: Single;
    DecoOuterSizeX1: Single;
    DecoOuterSizeY1: Single;
    DecoOuterSizeX2: Single;
    DecoOuterSizeY2: Single;
    DecoInnerSizeX1: Single;
    DecoInnerSizeY1: Single;
    NameBufLen: Integer;
    MoveId: ImGuiID;
    TabId: ImGuiID;
    ChildId: ImGuiID;
    PopupId: ImGuiID;
    Scroll: ImVec2;
    ScrollMax: ImVec2;
    ScrollTarget: ImVec2;
    ScrollTargetCenterRatio: ImVec2;
    ScrollTargetEdgeSnapDist: ImVec2;
    ScrollbarSizes: ImVec2;
    ScrollbarX: Boolean;
    ScrollbarY: Boolean;
    ViewportOwned: Boolean;
    Active: Boolean;
    WasActive: Boolean;
    WriteAccessed: Boolean;
    Collapsed: Boolean;
    WantCollapseToggle: Boolean;
    SkipItems: Boolean;
    SkipRefresh: Boolean;
    Appearing: Boolean;
    Hidden: Boolean;
    IsFallbackWindow: Boolean;
    IsExplicitChild: Boolean;
    HasCloseButton: Boolean;
    ResizeBorderHovered: AnsiChar;
    ResizeBorderHeld: AnsiChar;
    BeginCount: Smallint;
    BeginCountPreviousFrame: Smallint;
    BeginOrderWithinParent: Smallint;
    BeginOrderWithinContext: Smallint;
    FocusOrder: Smallint;
    AutoFitFramesX: ImS8;
    AutoFitFramesY: ImS8;
    AutoFitOnlyGrows: Boolean;
    AutoPosLastDirection: ImGuiDir;
    HiddenFramesCanSkipItems: ImS8;
    HiddenFramesCannotSkipItems: ImS8;
    HiddenFramesForRenderOnly: ImS8;
    DisableInputsFrames: ImS8;
  private
    Data0: Cardinal;
    function GetData0Value(const AIndex: Integer): Cardinal;
    procedure SetData0Value(const AIndex: Integer; const AValue: Cardinal);
  public
    property SetWindowPosAllowFlags: Cardinal index $0008 read GetData0Value write SetData0Value; // 8 bits at offset 0 in Data0
    property SetWindowSizeAllowFlags: Cardinal index $0808 read GetData0Value write SetData0Value; // 8 bits at offset 8 in Data0
    property SetWindowCollapsedAllowFlags: Cardinal index $1008 read GetData0Value write SetData0Value; // 8 bits at offset 16 in Data0
    property SetWindowDockAllowFlags: Cardinal index $1808 read GetData0Value write SetData0Value; // 8 bits at offset 24 in Data0
  var
    SetWindowPosVal: ImVec2;
    SetWindowPosPivot: ImVec2;
    IDStack: ImVector_ImGuiID;
    DC: ImGuiWindowTempData;
    OuterRectClipped: ImRect;
    InnerRect: ImRect;
    InnerClipRect: ImRect;
    WorkRect: ImRect;
    ParentWorkRect: ImRect;
    ClipRect: ImRect;
    ContentRegionRect: ImRect;
    HitTestHoleSize: ImVec2ih;
    HitTestHoleOffset: ImVec2ih;
    LastFrameActive: Integer;
    LastFrameJustFocused: Integer;
    LastTimeActive: Single;
    ItemWidthDefault: Single;
    StateStorage: ImGuiStorage;
    ColumnsStorage: ImVector_ImGuiOldColumns;
    FontWindowScale: Single;
    FontDpiScale: Single;
    SettingsOffset: Integer;
    DrawList: PImDrawList;
    DrawListInst: ImDrawList;
    ParentWindow: PImGuiWindow;
    ParentWindowInBeginStack: PImGuiWindow;
    RootWindow: PImGuiWindow;
    RootWindowPopupTree: PImGuiWindow;
    RootWindowDockTree: PImGuiWindow;
    RootWindowForTitleBarHighlight: PImGuiWindow;
    RootWindowForNav: PImGuiWindow;
    ParentWindowForFocusRoute: PImGuiWindow;
    NavLastChildNavWindow: PImGuiWindow;
    NavLastIds: array [0..1] of ImGuiID;
    NavRectRel: array [0..1] of ImRect;
    NavPreferredScoringPosRel: array [0..1] of ImVec2;
    NavRootFocusScopeId: ImGuiID;
    MemoryDrawListIdxCapacity: Integer;
    MemoryDrawListVtxCapacity: Integer;
    MemoryCompacted: Boolean;
  private
    Data1: Cardinal;
    function GetData1Value(const AIndex: Integer): Cardinal;
    procedure SetData1Value(const AIndex: Integer; const AValue: Cardinal);
  public
    property DockIsActive: Cardinal index $1 read GetData1Value write SetData1Value; // 1 bits at offset 0 in Data1
    property DockNodeIsVisible: Cardinal index $101 read GetData1Value write SetData1Value; // 1 bits at offset 1 in Data1
    property DockTabIsVisible: Cardinal index $201 read GetData1Value write SetData1Value; // 1 bits at offset 2 in Data1
    property DockTabWantClose: Cardinal index $301 read GetData1Value write SetData1Value; // 1 bits at offset 3 in Data1
  var
    DockOrder: Smallint;
    DockStyle: ImGuiWindowDockStyle;
    DockNode: PImGuiDockNode;
    DockNodeAsHost: PImGuiDockNode;
    DockId: ImGuiID;
    DockTabItemStatusFlags: ImGuiItemStatusFlags;
    DockTabItemRect: ImRect;
  end;

  ImGuiTabItem = record
    ID: ImGuiID;
    Flags: ImGuiTabItemFlags;
    Window: PImGuiWindow;
    LastFrameVisible: Integer;
    LastFrameSelected: Integer;
    Offset: Single;
    Width: Single;
    ContentWidth: Single;
    RequestedWidth: Single;
    NameOffset: ImS32;
    BeginOrder: ImS16;
    IndexDuringLayout: ImS16;
    WantClose: Boolean;
  end;

  ImVector_ImGuiTabItem = record
    Size: Integer;
    Capacity: Integer;
    Data: PImGuiTabItem;
  end;

  ImGuiTabBar = record
    Tabs: ImVector_ImGuiTabItem;
    Flags: ImGuiTabBarFlags;
    ID: ImGuiID;
    SelectedTabId: ImGuiID;
    NextSelectedTabId: ImGuiID;
    VisibleTabId: ImGuiID;
    CurrFrameVisible: Integer;
    PrevFrameVisible: Integer;
    BarRect: ImRect;
    CurrTabsContentsHeight: Single;
    PrevTabsContentsHeight: Single;
    WidthAllTabs: Single;
    WidthAllTabsIdeal: Single;
    ScrollingAnim: Single;
    ScrollingTarget: Single;
    ScrollingTargetDistToVisibility: Single;
    ScrollingSpeed: Single;
    ScrollingRectMinX: Single;
    ScrollingRectMaxX: Single;
    SeparatorMinX: Single;
    SeparatorMaxX: Single;
    ReorderRequestTabId: ImGuiID;
    ReorderRequestOffset: ImS16;
    BeginCount: ImS8;
    WantLayout: Boolean;
    VisibleTabWasSubmitted: Boolean;
    TabsAddedNew: Boolean;
    TabsActiveCount: ImS16;
    LastTabItemIdx: ImS16;
    ItemSpacingY: Single;
    FramePadding: ImVec2;
    BackupCursorPos: ImVec2;
    TabsNames: ImGuiTextBuffer;
  end;

  ImGuiTableColumnIdx = ImS16;
  PImGuiTableColumnIdx = ^ImGuiTableColumnIdx;
  ImGuiTableDrawChannelIdx = ImU16;

  ImGuiTableColumn = record
    Flags: ImGuiTableColumnFlags;
    WidthGiven: Single;
    MinX: Single;
    MaxX: Single;
    WidthRequest: Single;
    WidthAuto: Single;
    StretchWeight: Single;
    InitStretchWeightOrWidth: Single;
    ClipRect: ImRect;
    UserID: ImGuiID;
    WorkMinX: Single;
    WorkMaxX: Single;
    ItemWidth: Single;
    ContentMaxXFrozen: Single;
    ContentMaxXUnfrozen: Single;
    ContentMaxXHeadersUsed: Single;
    ContentMaxXHeadersIdeal: Single;
    NameOffset: ImS16;
    DisplayOrder: ImGuiTableColumnIdx;
    IndexWithinEnabledSet: ImGuiTableColumnIdx;
    PrevEnabledColumn: ImGuiTableColumnIdx;
    NextEnabledColumn: ImGuiTableColumnIdx;
    SortOrder: ImGuiTableColumnIdx;
    DrawChannelCurrent: ImGuiTableDrawChannelIdx;
    DrawChannelFrozen: ImGuiTableDrawChannelIdx;
    DrawChannelUnfrozen: ImGuiTableDrawChannelIdx;
    IsEnabled: Boolean;
    IsUserEnabled: Boolean;
    IsUserEnabledNextFrame: Boolean;
    IsVisibleX: Boolean;
    IsVisibleY: Boolean;
    IsRequestOutput: Boolean;
    IsSkipItems: Boolean;
    IsPreserveWidthAuto: Boolean;
    NavLayerCurrent: ImS8;
    AutoFitQueue: ImU8;
    CannotSkipItemsQueue: ImU8;
  private
    Data0: Cardinal;
    function GetData0Value(const AIndex: Integer): Cardinal;
    procedure SetData0Value(const AIndex: Integer; const AValue: Cardinal);
  public
    property SortDirection: Cardinal index $2 read GetData0Value write SetData0Value; // 2 bits at offset 0 in Data0
    property SortDirectionsAvailCount: Cardinal index $202 read GetData0Value write SetData0Value; // 2 bits at offset 2 in Data0
    property SortDirectionsAvailMask: Cardinal index $404 read GetData0Value write SetData0Value; // 4 bits at offset 4 in Data0
  var
    SortDirectionsAvailList: ImU8;
  end;

  ImGuiTableCellData = record
    BgColor: ImU32;
    Column: ImGuiTableColumnIdx;
  end;

  ImGuiTableHeaderData = record
    Index: ImGuiTableColumnIdx;
    TextColor: ImU32;
    BgColor0: ImU32;
    BgColor1: ImU32;
  end;

  ImGuiTableInstanceData = record
    TableInstanceID: ImGuiID;
    LastOuterHeight: Single;
    LastTopHeadersRowHeight: Single;
    LastFrozenHeight: Single;
    HoveredRowLast: Integer;
    HoveredRowNext: Integer;
  end;

  ImSpan_ImGuiTableColumn = record
    Data: PImGuiTableColumn;
    DataEnd: PImGuiTableColumn;
  end;

  ImSpan_ImGuiTableColumnIdx = record
    Data: PImGuiTableColumnIdx;
    DataEnd: PImGuiTableColumnIdx;
  end;

  ImSpan_ImGuiTableCellData = record
    Data: PImGuiTableCellData;
    DataEnd: PImGuiTableCellData;
  end;

  ImVector_ImGuiTableInstanceData = record
    Size: Integer;
    Capacity: Integer;
    Data: PImGuiTableInstanceData;
  end;

  ImVector_ImGuiTableColumnSortSpecs = record
    Size: Integer;
    Capacity: Integer;
    Data: PImGuiTableColumnSortSpecs;
  end;

  ImGuiTable = record
    ID: ImGuiID;
    Flags: ImGuiTableFlags;
    RawData: Pointer;
    TempData: PImGuiTableTempData;
    Columns: ImSpan_ImGuiTableColumn;
    DisplayOrderToIndex: ImSpan_ImGuiTableColumnIdx;
    RowCellData: ImSpan_ImGuiTableCellData;
    EnabledMaskByDisplayOrder: ImBitArrayPtr;
    EnabledMaskByIndex: ImBitArrayPtr;
    VisibleMaskByIndex: ImBitArrayPtr;
    SettingsLoadedFlags: ImGuiTableFlags;
    SettingsOffset: Integer;
    LastFrameActive: Integer;
    ColumnsCount: Integer;
    CurrentRow: Integer;
    CurrentColumn: Integer;
    InstanceCurrent: ImS16;
    InstanceInteracted: ImS16;
    RowPosY1: Single;
    RowPosY2: Single;
    RowMinHeight: Single;
    RowCellPaddingY: Single;
    RowTextBaseline: Single;
    RowIndentOffsetX: Single;
  private
    Data0: Cardinal;
    function GetData0Value(const AIndex: Integer): Cardinal;
    procedure SetData0Value(const AIndex: Integer; const AValue: Cardinal);
  public
    property RowFlags: Cardinal index $0010 read GetData0Value write SetData0Value; // 16 bits at offset 0 in Data0
    property LastRowFlags: Cardinal index $1010 read GetData0Value write SetData0Value; // 16 bits at offset 16 in Data0
  var
    RowBgColorCounter: Integer;
    RowBgColor: array [0..1] of ImU32;
    BorderColorStrong: ImU32;
    BorderColorLight: ImU32;
    BorderX1: Single;
    BorderX2: Single;
    HostIndentX: Single;
    MinColumnWidth: Single;
    OuterPaddingX: Single;
    CellPaddingX: Single;
    CellSpacingX1: Single;
    CellSpacingX2: Single;
    InnerWidth: Single;
    ColumnsGivenWidth: Single;
    ColumnsAutoFitWidth: Single;
    ColumnsStretchSumWeights: Single;
    ResizedColumnNextWidth: Single;
    ResizeLockMinContentsX2: Single;
    RefScale: Single;
    AngledHeadersHeight: Single;
    AngledHeadersSlope: Single;
    OuterRect: ImRect;
    InnerRect: ImRect;
    WorkRect: ImRect;
    InnerClipRect: ImRect;
    BgClipRect: ImRect;
    Bg0ClipRectForDrawCmd: ImRect;
    Bg2ClipRectForDrawCmd: ImRect;
    HostClipRect: ImRect;
    HostBackupInnerClipRect: ImRect;
    OuterWindow: PImGuiWindow;
    InnerWindow: PImGuiWindow;
    ColumnsNames: ImGuiTextBuffer;
    DrawSplitter: PImDrawListSplitter;
    InstanceDataFirst: ImGuiTableInstanceData;
    InstanceDataExtra: ImVector_ImGuiTableInstanceData;
    SortSpecsSingle: ImGuiTableColumnSortSpecs;
    SortSpecsMulti: ImVector_ImGuiTableColumnSortSpecs;
    SortSpecs: ImGuiTableSortSpecs;
    SortSpecsCount: ImGuiTableColumnIdx;
    ColumnsEnabledCount: ImGuiTableColumnIdx;
    ColumnsEnabledFixedCount: ImGuiTableColumnIdx;
    DeclColumnsCount: ImGuiTableColumnIdx;
    AngledHeadersCount: ImGuiTableColumnIdx;
    HoveredColumnBody: ImGuiTableColumnIdx;
    HoveredColumnBorder: ImGuiTableColumnIdx;
    HighlightColumnHeader: ImGuiTableColumnIdx;
    AutoFitSingleColumn: ImGuiTableColumnIdx;
    ResizedColumn: ImGuiTableColumnIdx;
    LastResizedColumn: ImGuiTableColumnIdx;
    HeldHeaderColumn: ImGuiTableColumnIdx;
    ReorderColumn: ImGuiTableColumnIdx;
    ReorderColumnDir: ImGuiTableColumnIdx;
    LeftMostEnabledColumn: ImGuiTableColumnIdx;
    RightMostEnabledColumn: ImGuiTableColumnIdx;
    LeftMostStretchedColumn: ImGuiTableColumnIdx;
    RightMostStretchedColumn: ImGuiTableColumnIdx;
    ContextPopupColumn: ImGuiTableColumnIdx;
    FreezeRowsRequest: ImGuiTableColumnIdx;
    FreezeRowsCount: ImGuiTableColumnIdx;
    FreezeColumnsRequest: ImGuiTableColumnIdx;
    FreezeColumnsCount: ImGuiTableColumnIdx;
    RowCellDataCurrent: ImGuiTableColumnIdx;
    DummyDrawChannel: ImGuiTableDrawChannelIdx;
    Bg2DrawChannelCurrent: ImGuiTableDrawChannelIdx;
    Bg2DrawChannelUnfrozen: ImGuiTableDrawChannelIdx;
    IsLayoutLocked: Boolean;
    IsInsideRow: Boolean;
    IsInitializing: Boolean;
    IsSortSpecsDirty: Boolean;
    IsUsingHeaders: Boolean;
    IsContextPopupOpen: Boolean;
    DisableDefaultContextMenu: Boolean;
    IsSettingsRequestLoad: Boolean;
    IsSettingsDirty: Boolean;
    IsDefaultDisplayOrder: Boolean;
    IsResetAllRequest: Boolean;
    IsResetDisplayOrderRequest: Boolean;
    IsUnfrozenRows: Boolean;
    IsDefaultSizingPolicy: Boolean;
    IsActiveIdAliveBeforeTable: Boolean;
    IsActiveIdInTable: Boolean;
    HasScrollbarYCurr: Boolean;
    HasScrollbarYPrev: Boolean;
    MemoryCompacted: Boolean;
    HostSkipItems: Boolean;
  end;

  ImVector_ImGuiTableHeaderData = record
    Size: Integer;
    Capacity: Integer;
    Data: PImGuiTableHeaderData;
  end;

  ImGuiTableTempData = record
    TableIndex: Integer;
    LastTimeActive: Single;
    AngledHeadersExtraWidth: Single;
    AngledHeadersRequests: ImVector_ImGuiTableHeaderData;
    UserOuterSize: ImVec2;
    DrawSplitter: ImDrawListSplitter;
    HostBackupWorkRect: ImRect;
    HostBackupParentWorkRect: ImRect;
    HostBackupPrevLineSize: ImVec2;
    HostBackupCurrLineSize: ImVec2;
    HostBackupCursorMaxPos: ImVec2;
    HostBackupColumnsOffset: ImVec1;
    HostBackupItemWidth: Single;
    HostBackupItemWidthStackSize: Integer;
  end;

  ImGuiTableColumnSettings = record
    WidthOrWeight: Single;
    UserID: ImGuiID;
    Index: ImGuiTableColumnIdx;
    DisplayOrder: ImGuiTableColumnIdx;
    SortOrder: ImGuiTableColumnIdx;
  private
    Data0: Cardinal;
    function GetData0Value(const AIndex: Integer): Cardinal;
    procedure SetData0Value(const AIndex: Integer; const AValue: Cardinal);
  public
    property SortDirection: Cardinal index $2 read GetData0Value write SetData0Value; // 2 bits at offset 0 in Data0
    property IsEnabled: Cardinal index $201 read GetData0Value write SetData0Value; // 1 bits at offset 2 in Data0
    property IsStretch: Cardinal index $301 read GetData0Value write SetData0Value; // 1 bits at offset 3 in Data0
  end;

  ImGuiTableSettings = record
    ID: ImGuiID;
    SaveFlags: ImGuiTableFlags;
    RefScale: Single;
    ColumnsCount: ImGuiTableColumnIdx;
    ColumnsCountMax: ImGuiTableColumnIdx;
    WantApply: Boolean;
  end;

  ImFontBuilderIO = record
    FontBuilder_Build: function(atlas: PImFontAtlas): Boolean; cdecl;
  end;

  PImPlotAxisColor = Pointer;
  PPImPlotAxisColor = ^PImPlotAxisColor;

  ImVector_ImS16 = record
    Size: Integer;
    Capacity: Integer;
    Data: PImS16;
  end;

  ImVector_ImS32 = record
    Size: Integer;
    Capacity: Integer;
    Data: PImS32;
  end;

  ImVector_ImS64 = record
    Size: Integer;
    Capacity: Integer;
    Data: PImS64;
  end;

  ImVector_ImS8 = record
    Size: Integer;
    Capacity: Integer;
    Data: PImS8;
  end;

  ImVector_ImU16 = record
    Size: Integer;
    Capacity: Integer;
    Data: PImU16;
  end;

  ImVector_ImU64 = record
    Size: Integer;
    Capacity: Integer;
    Data: PImU64;
  end;

  ImVector_ImU8 = record
    Size: Integer;
    Capacity: Integer;
    Data: PImU8;
  end;

  ImAxis = Integer;
  ImPlotFlags = Integer;
  ImPlotAxisFlags = Integer;
  ImPlotSubplotFlags = Integer;
  ImPlotLegendFlags = Integer;
  ImPlotMouseTextFlags = Integer;
  ImPlotDragToolFlags = Integer;
  ImPlotColormapScaleFlags = Integer;
  ImPlotItemFlags = Integer;
  ImPlotLineFlags = Integer;
  ImPlotScatterFlags = Integer;
  ImPlotStairsFlags = Integer;
  ImPlotShadedFlags = Integer;
  ImPlotBarsFlags = Integer;
  ImPlotBarGroupsFlags = Integer;
  ImPlotErrorBarsFlags = Integer;
  ImPlotStemsFlags = Integer;
  ImPlotInfLinesFlags = Integer;
  ImPlotPieChartFlags = Integer;
  ImPlotHeatmapFlags = Integer;
  ImPlotHistogramFlags = Integer;
  ImPlotDigitalFlags = Integer;
  ImPlotImageFlags = Integer;
  ImPlotTextFlags = Integer;
  ImPlotDummyFlags = Integer;
  ImPlotCond = Integer;
  ImPlotCol = Integer;
  ImPlotStyleVar = Integer;
  ImPlotScale = Integer;
  ImPlotMarker = Integer;
  ImPlotColormap = Integer;
  PImPlotColormap = ^ImPlotColormap;
  ImPlotLocation = Integer;
  ImPlotBin = Integer;

  ImPlotPoint = record
    x: Double;
    y: Double;
  end;

  ImPlotRange = record
    Min: Double;
    Max: Double;
  end;

  ImPlotRect = record
    X: ImPlotRange;
    Y: ImPlotRange;
  end;

  ImPlotStyle = record
    LineWeight: Single;
    Marker: Integer;
    MarkerSize: Single;
    MarkerWeight: Single;
    FillAlpha: Single;
    ErrorBarSize: Single;
    ErrorBarWeight: Single;
    DigitalBitHeight: Single;
    DigitalBitGap: Single;
    PlotBorderSize: Single;
    MinorAlpha: Single;
    MajorTickLen: ImVec2;
    MinorTickLen: ImVec2;
    MajorTickSize: ImVec2;
    MinorTickSize: ImVec2;
    MajorGridSize: ImVec2;
    MinorGridSize: ImVec2;
    PlotPadding: ImVec2;
    LabelPadding: ImVec2;
    LegendPadding: ImVec2;
    LegendInnerPadding: ImVec2;
    LegendSpacing: ImVec2;
    MousePosPadding: ImVec2;
    AnnotationPadding: ImVec2;
    FitPadding: ImVec2;
    PlotDefaultSize: ImVec2;
    PlotMinSize: ImVec2;
    Colors: array [0..20] of ImVec4;
    Colormap: ImPlotColormap;
    UseLocalTime: Boolean;
    UseISO8601: Boolean;
    Use24HourClock: Boolean;
  end;

  ImPlotInputMap = record
    Pan: ImGuiMouseButton;
    PanMod: Integer;
    Fit: ImGuiMouseButton;
    Select: ImGuiMouseButton;
    SelectCancel: ImGuiMouseButton;
    SelectMod: Integer;
    SelectHorzMod: Integer;
    SelectVertMod: Integer;
    Menu: ImGuiMouseButton;
    OverrideMod: Integer;
    ZoomMod: Integer;
    ZoomRate: Single;
  end;

  ImPlotFormatter = function(value: Double; buff: PAnsiChar; size: Integer; user_data: Pointer): Integer; cdecl;

  ImPlotGetter = function(idx: Integer; user_data: Pointer): ImPlotPoint; cdecl;

  ImPlotTransform = function(value: Double; user_data: Pointer): Double; cdecl;
  ImPlotTimeUnit = Integer;
  ImPlotDateFmt = Integer;
  ImPlotTimeFmt = Integer;

  ImPlotLocator = procedure(ticker: PImPlotTicker; range: ImPlotRange; pixels: Single; vertical: Boolean; formatter: ImPlotFormatter; formatter_data: Pointer); cdecl;

  ImPlotDateTimeSpec = record
    Date: ImPlotDateFmt;
    Time: ImPlotTimeFmt;
    UseISO8601: Boolean;
    Use24HourClock: Boolean;
  end;

  ImPlotTime = record
    S: Longint;
    Us: Integer;
  end;

  ImVector_bool = record
    Size: Integer;
    Capacity: Integer;
    Data: PBoolean;
  end;

  ImPlotColormapData = record
    Keys: ImVector_ImU32;
    KeyCounts: ImVector_int;
    KeyOffsets: ImVector_int;
    Tables: ImVector_ImU32;
    TableSizes: ImVector_int;
    TableOffsets: ImVector_int;
    Text: ImGuiTextBuffer;
    TextOffsets: ImVector_int;
    Quals: ImVector_bool;
    Map: ImGuiStorage;
    Count: Integer;
  end;

  ImPlotPointError = record
    X: Double;
    Y: Double;
    Neg: Double;
    Pos: Double;
  end;

  ImPlotAnnotation = record
    Pos: ImVec2;
    Offset: ImVec2;
    ColorBg: ImU32;
    ColorFg: ImU32;
    TextOffset: Integer;
    Clamp: Boolean;
  end;

  ImVector_ImPlotAnnotation = record
    Size: Integer;
    Capacity: Integer;
    Data: PImPlotAnnotation;
  end;

  ImPlotAnnotationCollection = record
    Annotations: ImVector_ImPlotAnnotation;
    TextBuffer: ImGuiTextBuffer;
    Size: Integer;
  end;

  ImPlotTag = record
    Axis: ImAxis;
    Value: Double;
    ColorBg: ImU32;
    ColorFg: ImU32;
    TextOffset: Integer;
  end;

  ImVector_ImPlotTag = record
    Size: Integer;
    Capacity: Integer;
    Data: PImPlotTag;
  end;

  ImPlotTagCollection = record
    Tags: ImVector_ImPlotTag;
    TextBuffer: ImGuiTextBuffer;
    Size: Integer;
  end;

  ImPlotTick = record
    PlotPos: Double;
    PixelPos: Single;
    LabelSize: ImVec2;
    TextOffset: Integer;
    Major: Boolean;
    ShowLabel: Boolean;
    Level: Integer;
    Idx: Integer;
  end;

  ImVector_ImPlotTick = record
    Size: Integer;
    Capacity: Integer;
    Data: PImPlotTick;
  end;

  ImPlotTicker = record
    Ticks: ImVector_ImPlotTick;
    TextBuffer: ImGuiTextBuffer;
    MaxSize: ImVec2;
    LateSize: ImVec2;
    Levels: Integer;
  end;

  ImPlotAxis = record
    ID: ImGuiID;
    Flags: ImPlotAxisFlags;
    PreviousFlags: ImPlotAxisFlags;
    Range: ImPlotRange;
    RangeCond: ImPlotCond;
    Scale: ImPlotScale;
    FitExtents: ImPlotRange;
    OrthoAxis: PImPlotAxis;
    ConstraintRange: ImPlotRange;
    ConstraintZoom: ImPlotRange;
    Ticker: ImPlotTicker;
    Formatter: ImPlotFormatter;
    FormatterData: Pointer;
    FormatSpec: array [0..15] of AnsiChar;
    Locator: ImPlotLocator;
    LinkedMin: PDouble;
    LinkedMax: PDouble;
    PickerLevel: Integer;
    PickerTimeMin: ImPlotTime;
    PickerTimeMax: ImPlotTime;
    TransformForward: ImPlotTransform;
    TransformInverse: ImPlotTransform;
    TransformData: Pointer;
    PixelMin: Single;
    PixelMax: Single;
    ScaleMin: Double;
    ScaleMax: Double;
    ScaleToPixel: Double;
    Datum1: Single;
    Datum2: Single;
    HoverRect: ImRect;
    LabelOffset: Integer;
    ColorMaj: ImU32;
    ColorMin: ImU32;
    ColorTick: ImU32;
    ColorTxt: ImU32;
    ColorBg: ImU32;
    ColorHov: ImU32;
    ColorAct: ImU32;
    ColorHiLi: ImU32;
    Enabled: Boolean;
    Vertical: Boolean;
    FitThisFrame: Boolean;
    HasRange: Boolean;
    HasFormatSpec: Boolean;
    ShowDefaultTicks: Boolean;
    Hovered: Boolean;
    Held: Boolean;
  end;

  ImPlotAlignmentData = record
    Vertical: Boolean;
    PadA: Single;
    PadB: Single;
    PadAMax: Single;
    PadBMax: Single;
  end;

  ImPlotItem = record
    ID: ImGuiID;
    Color: ImU32;
    LegendHoverRect: ImRect;
    NameOffset: Integer;
    Show: Boolean;
    LegendHovered: Boolean;
    SeenThisFrame: Boolean;
  end;

  ImPlotLegend = record
    Flags: ImPlotLegendFlags;
    PreviousFlags: ImPlotLegendFlags;
    Location: ImPlotLocation;
    PreviousLocation: ImPlotLocation;
    Scroll: ImVec2;
    Indices: ImVector_int;
    Labels: ImGuiTextBuffer;
    Rect: ImRect;
    RectClamped: ImRect;
    Hovered: Boolean;
    Held: Boolean;
    CanGoInside: Boolean;
  end;

  ImVector_ImPlotItem = record
    Size: Integer;
    Capacity: Integer;
    Data: PImPlotItem;
  end;

  ImPool_ImPlotItem = record
    Buf: ImVector_ImPlotItem;
    Map: ImGuiStorage;
    FreeIdx: ImPoolIdx;
    AliveCount: ImPoolIdx;
  end;

  ImPlotItemGroup = record
    ID: ImGuiID;
    Legend: ImPlotLegend;
    ItemPool: ImPool_ImPlotItem;
    ColormapIdx: Integer;
  end;

  ImPlotPlot = record
    ID: ImGuiID;
    Flags: ImPlotFlags;
    PreviousFlags: ImPlotFlags;
    MouseTextLocation: ImPlotLocation;
    MouseTextFlags: ImPlotMouseTextFlags;
    Axes: array [0..5] of ImPlotAxis;
    TextBuffer: ImGuiTextBuffer;
    Items: ImPlotItemGroup;
    CurrentX: ImAxis;
    CurrentY: ImAxis;
    FrameRect: ImRect;
    CanvasRect: ImRect;
    PlotRect: ImRect;
    AxesRect: ImRect;
    SelectRect: ImRect;
    SelectStart: ImVec2;
    TitleOffset: Integer;
    JustCreated: Boolean;
    Initialized: Boolean;
    SetupLocked: Boolean;
    FitThisFrame: Boolean;
    Hovered: Boolean;
    Held: Boolean;
    Selecting: Boolean;
    Selected: Boolean;
    ContextLocked: Boolean;
  end;

  ImVector_ImPlotAlignmentData = record
    Size: Integer;
    Capacity: Integer;
    Data: PImPlotAlignmentData;
  end;

  ImVector_ImPlotRange = record
    Size: Integer;
    Capacity: Integer;
    Data: PImPlotRange;
  end;

  ImPlotSubplot = record
    ID: ImGuiID;
    Flags: ImPlotSubplotFlags;
    PreviousFlags: ImPlotSubplotFlags;
    Items: ImPlotItemGroup;
    Rows: Integer;
    Cols: Integer;
    CurrentIdx: Integer;
    FrameRect: ImRect;
    GridRect: ImRect;
    CellSize: ImVec2;
    RowAlignmentData: ImVector_ImPlotAlignmentData;
    ColAlignmentData: ImVector_ImPlotAlignmentData;
    RowRatios: ImVector_float;
    ColRatios: ImVector_float;
    RowLinkData: ImVector_ImPlotRange;
    ColLinkData: ImVector_ImPlotRange;
    TempSizes: array [0..1] of Single;
    FrameHovered: Boolean;
    HasTitle: Boolean;
  end;

  ImPlotNextPlotData = record
    RangeCond: array [0..5] of ImPlotCond;
    Range: array [0..5] of ImPlotRange;
    HasRange: array [0..5] of Boolean;
    Fit: array [0..5] of Boolean;
    LinkedMin: array [0..5] of PDouble;
    LinkedMax: array [0..5] of PDouble;
  end;

  ImPlotNextItemData = record
    Colors: array [0..4] of ImVec4;
    LineWeight: Single;
    Marker: ImPlotMarker;
    MarkerSize: Single;
    MarkerWeight: Single;
    FillAlpha: Single;
    ErrorBarSize: Single;
    ErrorBarWeight: Single;
    DigitalBitHeight: Single;
    DigitalBitGap: Single;
    RenderLine: Boolean;
    RenderFill: Boolean;
    RenderMarkerLine: Boolean;
    RenderMarkerFill: Boolean;
    HasHidden: Boolean;
    Hidden: Boolean;
    HiddenCond: ImPlotCond;
  end;

  ImVector_ImPlotPlot = record
    Size: Integer;
    Capacity: Integer;
    Data: PImPlotPlot;
  end;

  ImPool_ImPlotPlot = record
    Buf: ImVector_ImPlotPlot;
    Map: ImGuiStorage;
    FreeIdx: ImPoolIdx;
    AliveCount: ImPoolIdx;
  end;

  ImVector_ImPlotSubplot = record
    Size: Integer;
    Capacity: Integer;
    Data: PImPlotSubplot;
  end;

  ImPool_ImPlotSubplot = record
    Buf: ImVector_ImPlotSubplot;
    Map: ImGuiStorage;
    FreeIdx: ImPoolIdx;
    AliveCount: ImPoolIdx;
  end;

  ImVector_ImPlotColormap = record
    Size: Integer;
    Capacity: Integer;
    Data: PImPlotColormap;
  end;

  ImVector_double = record
    Size: Integer;
    Capacity: Integer;
    Data: PDouble;
  end;

  ImPool_ImPlotAlignmentData = record
    Buf: ImVector_ImPlotAlignmentData;
    Map: ImGuiStorage;
    FreeIdx: ImPoolIdx;
    AliveCount: ImPoolIdx;
  end;

  ImPlotContext = record
    Plots: ImPool_ImPlotPlot;
    Subplots: ImPool_ImPlotSubplot;
    CurrentPlot: PImPlotPlot;
    CurrentSubplot: PImPlotSubplot;
    CurrentItems: PImPlotItemGroup;
    CurrentItem: PImPlotItem;
    PreviousItem: PImPlotItem;
    CTicker: ImPlotTicker;
    Annotations: ImPlotAnnotationCollection;
    Tags: ImPlotTagCollection;
    Style: ImPlotStyle;
    ColorModifiers: ImVector_ImGuiColorMod;
    StyleModifiers: ImVector_ImGuiStyleMod;
    ColormapData: ImPlotColormapData;
    ColormapModifiers: ImVector_ImPlotColormap;
    Tm: tm;
    TempDouble1: ImVector_double;
    TempDouble2: ImVector_double;
    TempInt1: ImVector_int;
    DigitalPlotItemCnt: Integer;
    DigitalPlotOffset: Integer;
    NextPlotData: ImPlotNextPlotData;
    NextItemData: ImPlotNextItemData;
    InputMap: ImPlotInputMap;
    OpenContextThisFrame: Boolean;
    MousePosStringBuilder: ImGuiTextBuffer;
    SortItems: PImPlotItemGroup;
    AlignmentData: ImPool_ImPlotAlignmentData;
    CurrentAlignmentH: PImPlotAlignmentData;
    CurrentAlignmentV: PImPlotAlignmentData;
  end;

  Formatter_Time_Data = record
    Time: ImPlotTime;
    Spec: ImPlotDateTimeSpec;
    UserFormatter: ImPlotFormatter;
    UserFormatterData: Pointer;
  end;

  ImPlotPoint_getter = function(data: Pointer; idx: Integer; point: PImPlotPoint): Pointer; cdecl;

function ImVec2_ImVec2_Nil(): PImVec2; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImVec2_ImVec2_Nil';

procedure ImVec2_destroy(self: PImVec2); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImVec2_destroy';

function ImVec2_ImVec2_Float(_x: Single; _y: Single): PImVec2; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImVec2_ImVec2_Float';

function ImVec4_ImVec4_Nil(): PImVec4; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImVec4_ImVec4_Nil';

procedure ImVec4_destroy(self: PImVec4); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImVec4_destroy';

function ImVec4_ImVec4_Float(_x: Single; _y: Single; _z: Single; _w: Single): PImVec4; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImVec4_ImVec4_Float';

function igCreateContext(shared_font_atlas: PImFontAtlas): PImGuiContext; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igCreateContext';

procedure igDestroyContext(ctx: PImGuiContext); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDestroyContext';

function igGetCurrentContext(): PImGuiContext; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetCurrentContext';

procedure igSetCurrentContext(ctx: PImGuiContext); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetCurrentContext';

function igGetIO(): PImGuiIO; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetIO';

function igGetStyle(): PImGuiStyle; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetStyle';

procedure igNewFrame(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igNewFrame';

procedure igEndFrame(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igEndFrame';

procedure igRender(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igRender';

function igGetDrawData(): PImDrawData; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetDrawData';

procedure igShowDemoWindow(p_open: PBoolean); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igShowDemoWindow';

procedure igShowMetricsWindow(p_open: PBoolean); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igShowMetricsWindow';

procedure igShowDebugLogWindow(p_open: PBoolean); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igShowDebugLogWindow';

procedure igShowIDStackToolWindow(p_open: PBoolean); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igShowIDStackToolWindow';

procedure igShowAboutWindow(p_open: PBoolean); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igShowAboutWindow';

procedure igShowStyleEditor(ref: PImGuiStyle); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igShowStyleEditor';

function igShowStyleSelector(const label_: PAnsiChar): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igShowStyleSelector';

procedure igShowFontSelector(const label_: PAnsiChar); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igShowFontSelector';

procedure igShowUserGuide(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igShowUserGuide';

function igGetVersion(): PAnsiChar; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetVersion';

procedure igStyleColorsDark(dst: PImGuiStyle); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igStyleColorsDark';

procedure igStyleColorsLight(dst: PImGuiStyle); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igStyleColorsLight';

procedure igStyleColorsClassic(dst: PImGuiStyle); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igStyleColorsClassic';

function igBegin(const name: PAnsiChar; p_open: PBoolean; flags: ImGuiWindowFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBegin';

procedure igEnd(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igEnd';

function igBeginChild_Str(const str_id: PAnsiChar; size: ImVec2; child_flags: ImGuiChildFlags; window_flags: ImGuiWindowFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginChild_Str';

function igBeginChild_ID(id: ImGuiID; size: ImVec2; child_flags: ImGuiChildFlags; window_flags: ImGuiWindowFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginChild_ID';

procedure igEndChild(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igEndChild';

function igIsWindowAppearing(): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsWindowAppearing';

function igIsWindowCollapsed(): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsWindowCollapsed';

function igIsWindowFocused(flags: ImGuiFocusedFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsWindowFocused';

function igIsWindowHovered(flags: ImGuiHoveredFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsWindowHovered';

function igGetWindowDrawList(): PImDrawList; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetWindowDrawList';

function igGetWindowDpiScale(): Single; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetWindowDpiScale';

procedure igGetWindowPos(pOut: PImVec2); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetWindowPos';

procedure igGetWindowSize(pOut: PImVec2); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetWindowSize';

function igGetWindowWidth(): Single; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetWindowWidth';

function igGetWindowHeight(): Single; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetWindowHeight';

function igGetWindowViewport(): PImGuiViewport; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetWindowViewport';

procedure igSetNextWindowPos(pos: ImVec2; cond: ImGuiCond; pivot: ImVec2); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetNextWindowPos';

procedure igSetNextWindowSize(size: ImVec2; cond: ImGuiCond); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetNextWindowSize';

procedure igSetNextWindowSizeConstraints(size_min: ImVec2; size_max: ImVec2; custom_callback: ImGuiSizeCallback; custom_callback_data: Pointer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetNextWindowSizeConstraints';

procedure igSetNextWindowContentSize(size: ImVec2); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetNextWindowContentSize';

procedure igSetNextWindowCollapsed(collapsed: Boolean; cond: ImGuiCond); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetNextWindowCollapsed';

procedure igSetNextWindowFocus(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetNextWindowFocus';

procedure igSetNextWindowScroll(scroll: ImVec2); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetNextWindowScroll';

procedure igSetNextWindowBgAlpha(alpha: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetNextWindowBgAlpha';

procedure igSetNextWindowViewport(viewport_id: ImGuiID); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetNextWindowViewport';

procedure igSetWindowPos_Vec2(pos: ImVec2; cond: ImGuiCond); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetWindowPos_Vec2';

procedure igSetWindowSize_Vec2(size: ImVec2; cond: ImGuiCond); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetWindowSize_Vec2';

procedure igSetWindowCollapsed_Bool(collapsed: Boolean; cond: ImGuiCond); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetWindowCollapsed_Bool';

procedure igSetWindowFocus_Nil(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetWindowFocus_Nil';

procedure igSetWindowFontScale(scale: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetWindowFontScale';

procedure igSetWindowPos_Str(const name: PAnsiChar; pos: ImVec2; cond: ImGuiCond); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetWindowPos_Str';

procedure igSetWindowSize_Str(const name: PAnsiChar; size: ImVec2; cond: ImGuiCond); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetWindowSize_Str';

procedure igSetWindowCollapsed_Str(const name: PAnsiChar; collapsed: Boolean; cond: ImGuiCond); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetWindowCollapsed_Str';

procedure igSetWindowFocus_Str(const name: PAnsiChar); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetWindowFocus_Str';

function igGetScrollX(): Single; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetScrollX';

function igGetScrollY(): Single; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetScrollY';

procedure igSetScrollX_Float(scroll_x: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetScrollX_Float';

procedure igSetScrollY_Float(scroll_y: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetScrollY_Float';

function igGetScrollMaxX(): Single; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetScrollMaxX';

function igGetScrollMaxY(): Single; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetScrollMaxY';

procedure igSetScrollHereX(center_x_ratio: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetScrollHereX';

procedure igSetScrollHereY(center_y_ratio: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetScrollHereY';

procedure igSetScrollFromPosX_Float(local_x: Single; center_x_ratio: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetScrollFromPosX_Float';

procedure igSetScrollFromPosY_Float(local_y: Single; center_y_ratio: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetScrollFromPosY_Float';

procedure igPushFont(font: PImFont); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPushFont';

procedure igPopFont(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPopFont';

procedure igPushStyleColor_U32(idx: ImGuiCol; col: ImU32); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPushStyleColor_U32';

procedure igPushStyleColor_Vec4(idx: ImGuiCol; col: ImVec4); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPushStyleColor_Vec4';

procedure igPopStyleColor(count: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPopStyleColor';

procedure igPushStyleVar_Float(idx: ImGuiStyleVar; val: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPushStyleVar_Float';

procedure igPushStyleVar_Vec2(idx: ImGuiStyleVar; val: ImVec2); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPushStyleVar_Vec2';

procedure igPopStyleVar(count: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPopStyleVar';

procedure igPushItemFlag(option: ImGuiItemFlags; enabled: Boolean); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPushItemFlag';

procedure igPopItemFlag(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPopItemFlag';

procedure igPushItemWidth(item_width: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPushItemWidth';

procedure igPopItemWidth(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPopItemWidth';

procedure igSetNextItemWidth(item_width: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetNextItemWidth';

function igCalcItemWidth(): Single; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igCalcItemWidth';

procedure igPushTextWrapPos(wrap_local_pos_x: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPushTextWrapPos';

procedure igPopTextWrapPos(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPopTextWrapPos';

function igGetFont(): PImFont; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetFont';

function igGetFontSize(): Single; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetFontSize';

procedure igGetFontTexUvWhitePixel(pOut: PImVec2); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetFontTexUvWhitePixel';

function igGetColorU32_Col(idx: ImGuiCol; alpha_mul: Single): ImU32; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetColorU32_Col';

function igGetColorU32_Vec4(col: ImVec4): ImU32; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetColorU32_Vec4';

function igGetColorU32_U32(col: ImU32; alpha_mul: Single): ImU32; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetColorU32_U32';

function igGetStyleColorVec4(idx: ImGuiCol): PImVec4; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetStyleColorVec4';

procedure igGetCursorScreenPos(pOut: PImVec2); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetCursorScreenPos';

procedure igSetCursorScreenPos(pos: ImVec2); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetCursorScreenPos';

procedure igGetContentRegionAvail(pOut: PImVec2); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetContentRegionAvail';

procedure igGetCursorPos(pOut: PImVec2); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetCursorPos';

function igGetCursorPosX(): Single; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetCursorPosX';

function igGetCursorPosY(): Single; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetCursorPosY';

procedure igSetCursorPos(local_pos: ImVec2); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetCursorPos';

procedure igSetCursorPosX(local_x: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetCursorPosX';

procedure igSetCursorPosY(local_y: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetCursorPosY';

procedure igGetCursorStartPos(pOut: PImVec2); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetCursorStartPos';

procedure igSeparator(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSeparator';

procedure igSameLine(offset_from_start_x: Single; spacing: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSameLine';

procedure igNewLine(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igNewLine';

procedure igSpacing(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSpacing';

procedure igDummy(size: ImVec2); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDummy';

procedure igIndent(indent_w: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIndent';

procedure igUnindent(indent_w: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igUnindent';

procedure igBeginGroup(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginGroup';

procedure igEndGroup(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igEndGroup';

procedure igAlignTextToFramePadding(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igAlignTextToFramePadding';

function igGetTextLineHeight(): Single; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetTextLineHeight';

function igGetTextLineHeightWithSpacing(): Single; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetTextLineHeightWithSpacing';

function igGetFrameHeight(): Single; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetFrameHeight';

function igGetFrameHeightWithSpacing(): Single; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetFrameHeightWithSpacing';

procedure igPushID_Str(const str_id: PAnsiChar); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPushID_Str';

procedure igPushID_StrStr(const str_id_begin: PAnsiChar; const str_id_end: PAnsiChar); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPushID_StrStr';

procedure igPushID_Ptr(const ptr_id: Pointer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPushID_Ptr';

procedure igPushID_Int(int_id: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPushID_Int';

procedure igPopID(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPopID';

function igGetID_Str(const str_id: PAnsiChar): ImGuiID; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetID_Str';

function igGetID_StrStr(const str_id_begin: PAnsiChar; const str_id_end: PAnsiChar): ImGuiID; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetID_StrStr';

function igGetID_Ptr(const ptr_id: Pointer): ImGuiID; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetID_Ptr';

function igGetID_Int(int_id: Integer): ImGuiID; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetID_Int';

procedure igTextUnformatted(const text: PAnsiChar; const text_end: PAnsiChar); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTextUnformatted';

procedure igText(const fmt: PAnsiChar) varargs; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igText';

procedure igTextV(const fmt: PAnsiChar; args: Pointer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTextV';

procedure igTextColored(col: ImVec4; const fmt: PAnsiChar) varargs; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTextColored';

procedure igTextColoredV(col: ImVec4; const fmt: PAnsiChar; args: Pointer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTextColoredV';

procedure igTextDisabled(const fmt: PAnsiChar) varargs; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTextDisabled';

procedure igTextDisabledV(const fmt: PAnsiChar; args: Pointer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTextDisabledV';

procedure igTextWrapped(const fmt: PAnsiChar) varargs; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTextWrapped';

procedure igTextWrappedV(const fmt: PAnsiChar; args: Pointer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTextWrappedV';

procedure igLabelText(const label_: PAnsiChar; const fmt: PAnsiChar) varargs; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igLabelText';

procedure igLabelTextV(const label_: PAnsiChar; const fmt: PAnsiChar; args: Pointer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igLabelTextV';

procedure igBulletText(const fmt: PAnsiChar) varargs; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBulletText';

procedure igBulletTextV(const fmt: PAnsiChar; args: Pointer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBulletTextV';

procedure igSeparatorText(const label_: PAnsiChar); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSeparatorText';

function igButton(const label_: PAnsiChar; size: ImVec2): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igButton';

function igSmallButton(const label_: PAnsiChar): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSmallButton';

function igInvisibleButton(const str_id: PAnsiChar; size: ImVec2; flags: ImGuiButtonFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igInvisibleButton';

function igArrowButton(const str_id: PAnsiChar; dir: ImGuiDir): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igArrowButton';

function igCheckbox(const label_: PAnsiChar; v: PBoolean): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igCheckbox';

function igCheckboxFlags_IntPtr(const label_: PAnsiChar; flags: PInteger; flags_value: Integer): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igCheckboxFlags_IntPtr';

function igCheckboxFlags_UintPtr(const label_: PAnsiChar; flags: PCardinal; flags_value: Cardinal): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igCheckboxFlags_UintPtr';

function igRadioButton_Bool(const label_: PAnsiChar; active: Boolean): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igRadioButton_Bool';

function igRadioButton_IntPtr(const label_: PAnsiChar; v: PInteger; v_button: Integer): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igRadioButton_IntPtr';

procedure igProgressBar(fraction: Single; size_arg: ImVec2; const overlay: PAnsiChar); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igProgressBar';

procedure igBullet(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBullet';

function igTextLink(const label_: PAnsiChar): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTextLink';

procedure igTextLinkOpenURL(const label_: PAnsiChar; const url: PAnsiChar); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTextLinkOpenURL';

procedure igImage(user_texture_id: ImTextureID; image_size: ImVec2; uv0: ImVec2; uv1: ImVec2; tint_col: ImVec4; border_col: ImVec4); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImage';

function igImageButton(const str_id: PAnsiChar; user_texture_id: ImTextureID; image_size: ImVec2; uv0: ImVec2; uv1: ImVec2; bg_col: ImVec4; tint_col: ImVec4): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImageButton';

function igBeginCombo(const label_: PAnsiChar; const preview_value: PAnsiChar; flags: ImGuiComboFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginCombo';

procedure igEndCombo(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igEndCombo';

function igCombo_Str_arr(const label_: PAnsiChar; current_item: PInteger; items: PPAnsiChar; items_count: Integer; popup_max_height_in_items: Integer): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igCombo_Str_arr';

function igCombo_Str(const label_: PAnsiChar; current_item: PInteger; const items_separated_by_zeros: PAnsiChar; popup_max_height_in_items: Integer): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igCombo_Str';

type
  igCombo_FnStrPtr_getter = function(user_data: Pointer; idx: Integer): PAnsiChar; cdecl;

function igCombo_FnStrPtr(const label_: PAnsiChar; current_item: PInteger; getter: igCombo_FnStrPtr_getter; user_data: Pointer; items_count: Integer; popup_max_height_in_items: Integer): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igCombo_FnStrPtr';

function igDragFloat(const label_: PAnsiChar; v: PSingle; v_speed: Single; v_min: Single; v_max: Single; const format: PAnsiChar; flags: ImGuiSliderFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDragFloat';

function igDragFloat2(const label_: PAnsiChar; v: PSingle; v_speed: Single; v_min: Single; v_max: Single; const format: PAnsiChar; flags: ImGuiSliderFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDragFloat2';

function igDragFloat3(const label_: PAnsiChar; v: PSingle; v_speed: Single; v_min: Single; v_max: Single; const format: PAnsiChar; flags: ImGuiSliderFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDragFloat3';

function igDragFloat4(const label_: PAnsiChar; v: PSingle; v_speed: Single; v_min: Single; v_max: Single; const format: PAnsiChar; flags: ImGuiSliderFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDragFloat4';

function igDragFloatRange2(const label_: PAnsiChar; v_current_min: PSingle; v_current_max: PSingle; v_speed: Single; v_min: Single; v_max: Single; const format: PAnsiChar; const format_max: PAnsiChar; flags: ImGuiSliderFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDragFloatRange2';

function igDragInt(const label_: PAnsiChar; v: PInteger; v_speed: Single; v_min: Integer; v_max: Integer; const format: PAnsiChar; flags: ImGuiSliderFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDragInt';

function igDragInt2(const label_: PAnsiChar; v: PInteger; v_speed: Single; v_min: Integer; v_max: Integer; const format: PAnsiChar; flags: ImGuiSliderFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDragInt2';

function igDragInt3(const label_: PAnsiChar; v: PInteger; v_speed: Single; v_min: Integer; v_max: Integer; const format: PAnsiChar; flags: ImGuiSliderFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDragInt3';

function igDragInt4(const label_: PAnsiChar; v: PInteger; v_speed: Single; v_min: Integer; v_max: Integer; const format: PAnsiChar; flags: ImGuiSliderFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDragInt4';

function igDragIntRange2(const label_: PAnsiChar; v_current_min: PInteger; v_current_max: PInteger; v_speed: Single; v_min: Integer; v_max: Integer; const format: PAnsiChar; const format_max: PAnsiChar; flags: ImGuiSliderFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDragIntRange2';

function igDragScalar(const label_: PAnsiChar; data_type: ImGuiDataType; p_data: Pointer; v_speed: Single; const p_min: Pointer; const p_max: Pointer; const format: PAnsiChar; flags: ImGuiSliderFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDragScalar';

function igDragScalarN(const label_: PAnsiChar; data_type: ImGuiDataType; p_data: Pointer; components: Integer; v_speed: Single; const p_min: Pointer; const p_max: Pointer; const format: PAnsiChar; flags: ImGuiSliderFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDragScalarN';

function igSliderFloat(const label_: PAnsiChar; v: PSingle; v_min: Single; v_max: Single; const format: PAnsiChar; flags: ImGuiSliderFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSliderFloat';

function igSliderFloat2(const label_: PAnsiChar; v: PSingle; v_min: Single; v_max: Single; const format: PAnsiChar; flags: ImGuiSliderFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSliderFloat2';

function igSliderFloat3(const label_: PAnsiChar; v: PSingle; v_min: Single; v_max: Single; const format: PAnsiChar; flags: ImGuiSliderFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSliderFloat3';

function igSliderFloat4(const label_: PAnsiChar; v: PSingle; v_min: Single; v_max: Single; const format: PAnsiChar; flags: ImGuiSliderFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSliderFloat4';

function igSliderAngle(const label_: PAnsiChar; v_rad: PSingle; v_degrees_min: Single; v_degrees_max: Single; const format: PAnsiChar; flags: ImGuiSliderFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSliderAngle';

function igSliderInt(const label_: PAnsiChar; v: PInteger; v_min: Integer; v_max: Integer; const format: PAnsiChar; flags: ImGuiSliderFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSliderInt';

function igSliderInt2(const label_: PAnsiChar; v: PInteger; v_min: Integer; v_max: Integer; const format: PAnsiChar; flags: ImGuiSliderFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSliderInt2';

function igSliderInt3(const label_: PAnsiChar; v: PInteger; v_min: Integer; v_max: Integer; const format: PAnsiChar; flags: ImGuiSliderFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSliderInt3';

function igSliderInt4(const label_: PAnsiChar; v: PInteger; v_min: Integer; v_max: Integer; const format: PAnsiChar; flags: ImGuiSliderFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSliderInt4';

function igSliderScalar(const label_: PAnsiChar; data_type: ImGuiDataType; p_data: Pointer; const p_min: Pointer; const p_max: Pointer; const format: PAnsiChar; flags: ImGuiSliderFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSliderScalar';

function igSliderScalarN(const label_: PAnsiChar; data_type: ImGuiDataType; p_data: Pointer; components: Integer; const p_min: Pointer; const p_max: Pointer; const format: PAnsiChar; flags: ImGuiSliderFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSliderScalarN';

function igVSliderFloat(const label_: PAnsiChar; size: ImVec2; v: PSingle; v_min: Single; v_max: Single; const format: PAnsiChar; flags: ImGuiSliderFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igVSliderFloat';

function igVSliderInt(const label_: PAnsiChar; size: ImVec2; v: PInteger; v_min: Integer; v_max: Integer; const format: PAnsiChar; flags: ImGuiSliderFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igVSliderInt';

function igVSliderScalar(const label_: PAnsiChar; size: ImVec2; data_type: ImGuiDataType; p_data: Pointer; const p_min: Pointer; const p_max: Pointer; const format: PAnsiChar; flags: ImGuiSliderFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igVSliderScalar';

function igInputText(const label_: PAnsiChar; buf: PAnsiChar; buf_size: NativeUInt; flags: ImGuiInputTextFlags; callback: ImGuiInputTextCallback; user_data: Pointer): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igInputText';

function igInputTextMultiline(const label_: PAnsiChar; buf: PAnsiChar; buf_size: NativeUInt; size: ImVec2; flags: ImGuiInputTextFlags; callback: ImGuiInputTextCallback; user_data: Pointer): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igInputTextMultiline';

function igInputTextWithHint(const label_: PAnsiChar; const hint: PAnsiChar; buf: PAnsiChar; buf_size: NativeUInt; flags: ImGuiInputTextFlags; callback: ImGuiInputTextCallback; user_data: Pointer): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igInputTextWithHint';

function igInputFloat(const label_: PAnsiChar; v: PSingle; step: Single; step_fast: Single; const format: PAnsiChar; flags: ImGuiInputTextFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igInputFloat';

function igInputFloat2(const label_: PAnsiChar; v: PSingle; const format: PAnsiChar; flags: ImGuiInputTextFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igInputFloat2';

function igInputFloat3(const label_: PAnsiChar; v: PSingle; const format: PAnsiChar; flags: ImGuiInputTextFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igInputFloat3';

function igInputFloat4(const label_: PAnsiChar; v: PSingle; const format: PAnsiChar; flags: ImGuiInputTextFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igInputFloat4';

function igInputInt(const label_: PAnsiChar; v: PInteger; step: Integer; step_fast: Integer; flags: ImGuiInputTextFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igInputInt';

function igInputInt2(const label_: PAnsiChar; v: PInteger; flags: ImGuiInputTextFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igInputInt2';

function igInputInt3(const label_: PAnsiChar; v: PInteger; flags: ImGuiInputTextFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igInputInt3';

function igInputInt4(const label_: PAnsiChar; v: PInteger; flags: ImGuiInputTextFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igInputInt4';

function igInputDouble(const label_: PAnsiChar; v: PDouble; step: Double; step_fast: Double; const format: PAnsiChar; flags: ImGuiInputTextFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igInputDouble';

function igInputScalar(const label_: PAnsiChar; data_type: ImGuiDataType; p_data: Pointer; const p_step: Pointer; const p_step_fast: Pointer; const format: PAnsiChar; flags: ImGuiInputTextFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igInputScalar';

function igInputScalarN(const label_: PAnsiChar; data_type: ImGuiDataType; p_data: Pointer; components: Integer; const p_step: Pointer; const p_step_fast: Pointer; const format: PAnsiChar; flags: ImGuiInputTextFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igInputScalarN';

function igColorEdit3(const label_: PAnsiChar; col: PSingle; flags: ImGuiColorEditFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igColorEdit3';

function igColorEdit4(const label_: PAnsiChar; col: PSingle; flags: ImGuiColorEditFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igColorEdit4';

function igColorPicker3(const label_: PAnsiChar; col: PSingle; flags: ImGuiColorEditFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igColorPicker3';

function igColorPicker4(const label_: PAnsiChar; col: PSingle; flags: ImGuiColorEditFlags; const ref_col: PSingle): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igColorPicker4';

function igColorButton(const desc_id: PAnsiChar; col: ImVec4; flags: ImGuiColorEditFlags; size: ImVec2): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igColorButton';

procedure igSetColorEditOptions(flags: ImGuiColorEditFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetColorEditOptions';

function igTreeNode_Str(const label_: PAnsiChar): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTreeNode_Str';

function igTreeNode_StrStr(const str_id: PAnsiChar; const fmt: PAnsiChar): Boolean varargs; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTreeNode_StrStr';

function igTreeNode_Ptr(const ptr_id: Pointer; const fmt: PAnsiChar): Boolean varargs; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTreeNode_Ptr';

function igTreeNodeV_Str(const str_id: PAnsiChar; const fmt: PAnsiChar; args: Pointer): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTreeNodeV_Str';

function igTreeNodeV_Ptr(const ptr_id: Pointer; const fmt: PAnsiChar; args: Pointer): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTreeNodeV_Ptr';

function igTreeNodeEx_Str(const label_: PAnsiChar; flags: ImGuiTreeNodeFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTreeNodeEx_Str';

function igTreeNodeEx_StrStr(const str_id: PAnsiChar; flags: ImGuiTreeNodeFlags; const fmt: PAnsiChar): Boolean varargs; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTreeNodeEx_StrStr';

function igTreeNodeEx_Ptr(const ptr_id: Pointer; flags: ImGuiTreeNodeFlags; const fmt: PAnsiChar): Boolean varargs; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTreeNodeEx_Ptr';

function igTreeNodeExV_Str(const str_id: PAnsiChar; flags: ImGuiTreeNodeFlags; const fmt: PAnsiChar; args: Pointer): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTreeNodeExV_Str';

function igTreeNodeExV_Ptr(const ptr_id: Pointer; flags: ImGuiTreeNodeFlags; const fmt: PAnsiChar; args: Pointer): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTreeNodeExV_Ptr';

procedure igTreePush_Str(const str_id: PAnsiChar); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTreePush_Str';

procedure igTreePush_Ptr(const ptr_id: Pointer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTreePush_Ptr';

procedure igTreePop(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTreePop';

function igGetTreeNodeToLabelSpacing(): Single; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetTreeNodeToLabelSpacing';

function igCollapsingHeader_TreeNodeFlags(const label_: PAnsiChar; flags: ImGuiTreeNodeFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igCollapsingHeader_TreeNodeFlags';

function igCollapsingHeader_BoolPtr(const label_: PAnsiChar; p_visible: PBoolean; flags: ImGuiTreeNodeFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igCollapsingHeader_BoolPtr';

procedure igSetNextItemOpen(is_open: Boolean; cond: ImGuiCond); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetNextItemOpen';

procedure igSetNextItemStorageID(storage_id: ImGuiID); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetNextItemStorageID';

function igSelectable_Bool(const label_: PAnsiChar; selected: Boolean; flags: ImGuiSelectableFlags; size: ImVec2): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSelectable_Bool';

function igSelectable_BoolPtr(const label_: PAnsiChar; p_selected: PBoolean; flags: ImGuiSelectableFlags; size: ImVec2): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSelectable_BoolPtr';

function igBeginMultiSelect(flags: ImGuiMultiSelectFlags; selection_size: Integer; items_count: Integer): PImGuiMultiSelectIO; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginMultiSelect';

function igEndMultiSelect(): PImGuiMultiSelectIO; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igEndMultiSelect';

procedure igSetNextItemSelectionUserData(selection_user_data: ImGuiSelectionUserData); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetNextItemSelectionUserData';

function igIsItemToggledSelection(): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsItemToggledSelection';

function igBeginListBox(const label_: PAnsiChar; size: ImVec2): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginListBox';

procedure igEndListBox(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igEndListBox';

function igListBox_Str_arr(const label_: PAnsiChar; current_item: PInteger; items: PPAnsiChar; items_count: Integer; height_in_items: Integer): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igListBox_Str_arr';

type
  igListBox_FnStrPtr_getter = function(user_data: Pointer; idx: Integer): PAnsiChar; cdecl;

function igListBox_FnStrPtr(const label_: PAnsiChar; current_item: PInteger; getter: igListBox_FnStrPtr_getter; user_data: Pointer; items_count: Integer; height_in_items: Integer): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igListBox_FnStrPtr';

procedure igPlotLines_FloatPtr(const label_: PAnsiChar; const values: PSingle; values_count: Integer; values_offset: Integer; const overlay_text: PAnsiChar; scale_min: Single; scale_max: Single; graph_size: ImVec2; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPlotLines_FloatPtr';

type
  igPlotLines_FnFloatPtr_values_getter = function(data: Pointer; idx: Integer): Single; cdecl;

procedure igPlotLines_FnFloatPtr(const label_: PAnsiChar; values_getter: igPlotLines_FnFloatPtr_values_getter; data: Pointer; values_count: Integer; values_offset: Integer; const overlay_text: PAnsiChar; scale_min: Single; scale_max: Single; graph_size: ImVec2); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPlotLines_FnFloatPtr';

procedure igPlotHistogram_FloatPtr(const label_: PAnsiChar; const values: PSingle; values_count: Integer; values_offset: Integer; const overlay_text: PAnsiChar; scale_min: Single; scale_max: Single; graph_size: ImVec2; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPlotHistogram_FloatPtr';

type
  igPlotHistogram_FnFloatPtr_values_getter = function(data: Pointer; idx: Integer): Single; cdecl;

procedure igPlotHistogram_FnFloatPtr(const label_: PAnsiChar; values_getter: igPlotHistogram_FnFloatPtr_values_getter; data: Pointer; values_count: Integer; values_offset: Integer; const overlay_text: PAnsiChar; scale_min: Single; scale_max: Single; graph_size: ImVec2); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPlotHistogram_FnFloatPtr';

procedure igValue_Bool(const prefix: PAnsiChar; b: Boolean); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igValue_Bool';

procedure igValue_Int(const prefix: PAnsiChar; v: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igValue_Int';

procedure igValue_Uint(const prefix: PAnsiChar; v: Cardinal); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igValue_Uint';

procedure igValue_Float(const prefix: PAnsiChar; v: Single; const float_format: PAnsiChar); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igValue_Float';

function igBeginMenuBar(): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginMenuBar';

procedure igEndMenuBar(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igEndMenuBar';

function igBeginMainMenuBar(): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginMainMenuBar';

procedure igEndMainMenuBar(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igEndMainMenuBar';

function igBeginMenu(const label_: PAnsiChar; enabled: Boolean): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginMenu';

procedure igEndMenu(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igEndMenu';

function igMenuItem_Bool(const label_: PAnsiChar; const shortcut: PAnsiChar; selected: Boolean; enabled: Boolean): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igMenuItem_Bool';

function igMenuItem_BoolPtr(const label_: PAnsiChar; const shortcut: PAnsiChar; p_selected: PBoolean; enabled: Boolean): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igMenuItem_BoolPtr';

function igBeginTooltip(): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginTooltip';

procedure igEndTooltip(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igEndTooltip';

procedure igSetTooltip(const fmt: PAnsiChar) varargs; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetTooltip';

procedure igSetTooltipV(const fmt: PAnsiChar; args: Pointer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetTooltipV';

function igBeginItemTooltip(): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginItemTooltip';

procedure igSetItemTooltip(const fmt: PAnsiChar) varargs; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetItemTooltip';

procedure igSetItemTooltipV(const fmt: PAnsiChar; args: Pointer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetItemTooltipV';

function igBeginPopup(const str_id: PAnsiChar; flags: ImGuiWindowFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginPopup';

function igBeginPopupModal(const name: PAnsiChar; p_open: PBoolean; flags: ImGuiWindowFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginPopupModal';

procedure igEndPopup(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igEndPopup';

procedure igOpenPopup_Str(const str_id: PAnsiChar; popup_flags: ImGuiPopupFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igOpenPopup_Str';

procedure igOpenPopup_ID(id: ImGuiID; popup_flags: ImGuiPopupFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igOpenPopup_ID';

procedure igOpenPopupOnItemClick(const str_id: PAnsiChar; popup_flags: ImGuiPopupFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igOpenPopupOnItemClick';

procedure igCloseCurrentPopup(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igCloseCurrentPopup';

function igBeginPopupContextItem(const str_id: PAnsiChar; popup_flags: ImGuiPopupFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginPopupContextItem';

function igBeginPopupContextWindow(const str_id: PAnsiChar; popup_flags: ImGuiPopupFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginPopupContextWindow';

function igBeginPopupContextVoid(const str_id: PAnsiChar; popup_flags: ImGuiPopupFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginPopupContextVoid';

function igIsPopupOpen_Str(const str_id: PAnsiChar; flags: ImGuiPopupFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsPopupOpen_Str';

function igBeginTable(const str_id: PAnsiChar; columns: Integer; flags: ImGuiTableFlags; outer_size: ImVec2; inner_width: Single): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginTable';

procedure igEndTable(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igEndTable';

procedure igTableNextRow(row_flags: ImGuiTableRowFlags; min_row_height: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableNextRow';

function igTableNextColumn(): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableNextColumn';

function igTableSetColumnIndex(column_n: Integer): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableSetColumnIndex';

procedure igTableSetupColumn(const label_: PAnsiChar; flags: ImGuiTableColumnFlags; init_width_or_weight: Single; user_id: ImGuiID); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableSetupColumn';

procedure igTableSetupScrollFreeze(cols: Integer; rows: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableSetupScrollFreeze';

procedure igTableHeader(const label_: PAnsiChar); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableHeader';

procedure igTableHeadersRow(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableHeadersRow';

procedure igTableAngledHeadersRow(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableAngledHeadersRow';

function igTableGetSortSpecs(): PImGuiTableSortSpecs; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableGetSortSpecs';

function igTableGetColumnCount(): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableGetColumnCount';

function igTableGetColumnIndex(): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableGetColumnIndex';

function igTableGetRowIndex(): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableGetRowIndex';

function igTableGetColumnName_Int(column_n: Integer): PAnsiChar; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableGetColumnName_Int';

function igTableGetColumnFlags(column_n: Integer): ImGuiTableColumnFlags; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableGetColumnFlags';

procedure igTableSetColumnEnabled(column_n: Integer; v: Boolean); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableSetColumnEnabled';

function igTableGetHoveredColumn(): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableGetHoveredColumn';

procedure igTableSetBgColor(target: ImGuiTableBgTarget; color: ImU32; column_n: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableSetBgColor';

procedure igColumns(count: Integer; const id: PAnsiChar; border: Boolean); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igColumns';

procedure igNextColumn(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igNextColumn';

function igGetColumnIndex(): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetColumnIndex';

function igGetColumnWidth(column_index: Integer): Single; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetColumnWidth';

procedure igSetColumnWidth(column_index: Integer; width: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetColumnWidth';

function igGetColumnOffset(column_index: Integer): Single; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetColumnOffset';

procedure igSetColumnOffset(column_index: Integer; offset_x: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetColumnOffset';

function igGetColumnsCount(): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetColumnsCount';

function igBeginTabBar(const str_id: PAnsiChar; flags: ImGuiTabBarFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginTabBar';

procedure igEndTabBar(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igEndTabBar';

function igBeginTabItem(const label_: PAnsiChar; p_open: PBoolean; flags: ImGuiTabItemFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginTabItem';

procedure igEndTabItem(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igEndTabItem';

function igTabItemButton(const label_: PAnsiChar; flags: ImGuiTabItemFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTabItemButton';

procedure igSetTabItemClosed(const tab_or_docked_window_label: PAnsiChar); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetTabItemClosed';

function igDockSpace(dockspace_id: ImGuiID; size: ImVec2; flags: ImGuiDockNodeFlags; const window_class: PImGuiWindowClass): ImGuiID; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockSpace';

function igDockSpaceOverViewport(dockspace_id: ImGuiID; const viewport: PImGuiViewport; flags: ImGuiDockNodeFlags; const window_class: PImGuiWindowClass): ImGuiID; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockSpaceOverViewport';

procedure igSetNextWindowDockID(dock_id: ImGuiID; cond: ImGuiCond); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetNextWindowDockID';

procedure igSetNextWindowClass(const window_class: PImGuiWindowClass); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetNextWindowClass';

function igGetWindowDockID(): ImGuiID; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetWindowDockID';

function igIsWindowDocked(): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsWindowDocked';

procedure igLogToTTY(auto_open_depth: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igLogToTTY';

procedure igLogToFile(auto_open_depth: Integer; const filename: PAnsiChar); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igLogToFile';

procedure igLogToClipboard(auto_open_depth: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igLogToClipboard';

procedure igLogFinish(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igLogFinish';

procedure igLogButtons(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igLogButtons';

procedure igLogTextV(const fmt: PAnsiChar; args: Pointer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igLogTextV';

function igBeginDragDropSource(flags: ImGuiDragDropFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginDragDropSource';

function igSetDragDropPayload(const type_: PAnsiChar; const data: Pointer; sz: NativeUInt; cond: ImGuiCond): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetDragDropPayload';

procedure igEndDragDropSource(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igEndDragDropSource';

function igBeginDragDropTarget(): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginDragDropTarget';

function igAcceptDragDropPayload(const type_: PAnsiChar; flags: ImGuiDragDropFlags): PImGuiPayload; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igAcceptDragDropPayload';

procedure igEndDragDropTarget(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igEndDragDropTarget';

function igGetDragDropPayload(): PImGuiPayload; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetDragDropPayload';

procedure igBeginDisabled(disabled: Boolean); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginDisabled';

procedure igEndDisabled(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igEndDisabled';

procedure igPushClipRect(clip_rect_min: ImVec2; clip_rect_max: ImVec2; intersect_with_current_clip_rect: Boolean); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPushClipRect';

procedure igPopClipRect(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPopClipRect';

procedure igSetItemDefaultFocus(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetItemDefaultFocus';

procedure igSetKeyboardFocusHere(offset: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetKeyboardFocusHere';

procedure igSetNextItemAllowOverlap(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetNextItemAllowOverlap';

function igIsItemHovered(flags: ImGuiHoveredFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsItemHovered';

function igIsItemActive(): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsItemActive';

function igIsItemFocused(): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsItemFocused';

function igIsItemClicked(mouse_button: ImGuiMouseButton): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsItemClicked';

function igIsItemVisible(): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsItemVisible';

function igIsItemEdited(): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsItemEdited';

function igIsItemActivated(): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsItemActivated';

function igIsItemDeactivated(): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsItemDeactivated';

function igIsItemDeactivatedAfterEdit(): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsItemDeactivatedAfterEdit';

function igIsItemToggledOpen(): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsItemToggledOpen';

function igIsAnyItemHovered(): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsAnyItemHovered';

function igIsAnyItemActive(): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsAnyItemActive';

function igIsAnyItemFocused(): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsAnyItemFocused';

function igGetItemID(): ImGuiID; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetItemID';

procedure igGetItemRectMin(pOut: PImVec2); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetItemRectMin';

procedure igGetItemRectMax(pOut: PImVec2); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetItemRectMax';

procedure igGetItemRectSize(pOut: PImVec2); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetItemRectSize';

function igGetMainViewport(): PImGuiViewport; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetMainViewport';

function igGetBackgroundDrawList(viewport: PImGuiViewport): PImDrawList; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetBackgroundDrawList';

function igGetForegroundDrawList_ViewportPtr(viewport: PImGuiViewport): PImDrawList; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetForegroundDrawList_ViewportPtr';

function igIsRectVisible_Nil(size: ImVec2): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsRectVisible_Nil';

function igIsRectVisible_Vec2(rect_min: ImVec2; rect_max: ImVec2): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsRectVisible_Vec2';

function igGetTime(): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetTime';

function igGetFrameCount(): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetFrameCount';

function igGetDrawListSharedData(): PImDrawListSharedData; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetDrawListSharedData';

function igGetStyleColorName(idx: ImGuiCol): PAnsiChar; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetStyleColorName';

procedure igSetStateStorage(storage: PImGuiStorage); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetStateStorage';

function igGetStateStorage(): PImGuiStorage; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetStateStorage';

procedure igCalcTextSize(pOut: PImVec2; const text: PAnsiChar; const text_end: PAnsiChar; hide_text_after_double_hash: Boolean; wrap_width: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igCalcTextSize';

procedure igColorConvertU32ToFloat4(pOut: PImVec4; in_: ImU32); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igColorConvertU32ToFloat4';

function igColorConvertFloat4ToU32(in_: ImVec4): ImU32; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igColorConvertFloat4ToU32';

procedure igColorConvertRGBtoHSV(r: Single; g: Single; b: Single; out_h: PSingle; out_s: PSingle; out_v: PSingle); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igColorConvertRGBtoHSV';

procedure igColorConvertHSVtoRGB(h: Single; s: Single; v: Single; out_r: PSingle; out_g: PSingle; out_b: PSingle); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igColorConvertHSVtoRGB';

function igIsKeyDown_Nil(key: ImGuiKey): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsKeyDown_Nil';

function igIsKeyPressed_Bool(key: ImGuiKey; repeat_: Boolean): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsKeyPressed_Bool';

function igIsKeyReleased_Nil(key: ImGuiKey): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsKeyReleased_Nil';

function igIsKeyChordPressed_Nil(key_chord: ImGuiKeyChord): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsKeyChordPressed_Nil';

function igGetKeyPressedAmount(key: ImGuiKey; repeat_delay: Single; rate: Single): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetKeyPressedAmount';

function igGetKeyName(key: ImGuiKey): PAnsiChar; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetKeyName';

procedure igSetNextFrameWantCaptureKeyboard(want_capture_keyboard: Boolean); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetNextFrameWantCaptureKeyboard';

function igShortcut_Nil(key_chord: ImGuiKeyChord; flags: ImGuiInputFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igShortcut_Nil';

procedure igSetNextItemShortcut(key_chord: ImGuiKeyChord; flags: ImGuiInputFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetNextItemShortcut';

procedure igSetItemKeyOwner_Nil(key: ImGuiKey); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetItemKeyOwner_Nil';

function igIsMouseDown_Nil(button: ImGuiMouseButton): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsMouseDown_Nil';

function igIsMouseClicked_Bool(button: ImGuiMouseButton; repeat_: Boolean): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsMouseClicked_Bool';

function igIsMouseReleased_Nil(button: ImGuiMouseButton): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsMouseReleased_Nil';

function igIsMouseDoubleClicked_Nil(button: ImGuiMouseButton): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsMouseDoubleClicked_Nil';

function igGetMouseClickedCount(button: ImGuiMouseButton): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetMouseClickedCount';

function igIsMouseHoveringRect(r_min: ImVec2; r_max: ImVec2; clip: Boolean): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsMouseHoveringRect';

function igIsMousePosValid(const mouse_pos: PImVec2): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsMousePosValid';

function igIsAnyMouseDown(): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsAnyMouseDown';

procedure igGetMousePos(pOut: PImVec2); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetMousePos';

procedure igGetMousePosOnOpeningCurrentPopup(pOut: PImVec2); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetMousePosOnOpeningCurrentPopup';

function igIsMouseDragging(button: ImGuiMouseButton; lock_threshold: Single): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsMouseDragging';

procedure igGetMouseDragDelta(pOut: PImVec2; button: ImGuiMouseButton; lock_threshold: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetMouseDragDelta';

procedure igResetMouseDragDelta(button: ImGuiMouseButton); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igResetMouseDragDelta';

function igGetMouseCursor(): ImGuiMouseCursor; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetMouseCursor';

procedure igSetMouseCursor(cursor_type: ImGuiMouseCursor); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetMouseCursor';

procedure igSetNextFrameWantCaptureMouse(want_capture_mouse: Boolean); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetNextFrameWantCaptureMouse';

function igGetClipboardText(): PAnsiChar; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetClipboardText';

procedure igSetClipboardText(const text: PAnsiChar); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetClipboardText';

procedure igLoadIniSettingsFromDisk(const ini_filename: PAnsiChar); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igLoadIniSettingsFromDisk';

procedure igLoadIniSettingsFromMemory(const ini_data: PAnsiChar; ini_size: NativeUInt); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igLoadIniSettingsFromMemory';

procedure igSaveIniSettingsToDisk(const ini_filename: PAnsiChar); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSaveIniSettingsToDisk';

function igSaveIniSettingsToMemory(out_ini_size: PNativeUInt): PAnsiChar; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSaveIniSettingsToMemory';

procedure igDebugTextEncoding(const text: PAnsiChar); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugTextEncoding';

procedure igDebugFlashStyleColor(idx: ImGuiCol); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugFlashStyleColor';

procedure igDebugStartItemPicker(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugStartItemPicker';

function igDebugCheckVersionAndDataLayout(const version_str: PAnsiChar; sz_io: NativeUInt; sz_style: NativeUInt; sz_vec2: NativeUInt; sz_vec4: NativeUInt; sz_drawvert: NativeUInt; sz_drawidx: NativeUInt): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugCheckVersionAndDataLayout';

procedure igDebugLog(const fmt: PAnsiChar) varargs; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugLog';

procedure igDebugLogV(const fmt: PAnsiChar; args: Pointer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugLogV';

procedure igSetAllocatorFunctions(alloc_func: ImGuiMemAllocFunc; free_func: ImGuiMemFreeFunc; user_data: Pointer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetAllocatorFunctions';

procedure igGetAllocatorFunctions(p_alloc_func: PImGuiMemAllocFunc; p_free_func: PImGuiMemFreeFunc; p_user_data: PPointer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetAllocatorFunctions';

function igMemAlloc(size: NativeUInt): Pointer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igMemAlloc';

procedure igMemFree(ptr: Pointer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igMemFree';

function igGetPlatformIO(): PImGuiPlatformIO; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetPlatformIO';

procedure igUpdatePlatformWindows(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igUpdatePlatformWindows';

procedure igRenderPlatformWindowsDefault(platform_render_arg: Pointer; renderer_render_arg: Pointer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igRenderPlatformWindowsDefault';

procedure igDestroyPlatformWindows(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDestroyPlatformWindows';

function igFindViewportByID(id: ImGuiID): PImGuiViewport; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igFindViewportByID';

function igFindViewportByPlatformHandle(platform_handle: Pointer): PImGuiViewport; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igFindViewportByPlatformHandle';

function ImGuiTableSortSpecs_ImGuiTableSortSpecs(): PImGuiTableSortSpecs; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTableSortSpecs_ImGuiTableSortSpecs';

procedure ImGuiTableSortSpecs_destroy(self: PImGuiTableSortSpecs); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTableSortSpecs_destroy';

function ImGuiTableColumnSortSpecs_ImGuiTableColumnSortSpecs(): PImGuiTableColumnSortSpecs; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTableColumnSortSpecs_ImGuiTableColumnSortSpecs';

procedure ImGuiTableColumnSortSpecs_destroy(self: PImGuiTableColumnSortSpecs); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTableColumnSortSpecs_destroy';

function ImGuiStyle_ImGuiStyle(): PImGuiStyle; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiStyle_ImGuiStyle';

procedure ImGuiStyle_destroy(self: PImGuiStyle); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiStyle_destroy';

procedure ImGuiStyle_ScaleAllSizes(self: PImGuiStyle; scale_factor: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiStyle_ScaleAllSizes';

procedure ImGuiIO_AddKeyEvent(self: PImGuiIO; key: ImGuiKey; down: Boolean); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiIO_AddKeyEvent';

procedure ImGuiIO_AddKeyAnalogEvent(self: PImGuiIO; key: ImGuiKey; down: Boolean; v: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiIO_AddKeyAnalogEvent';

procedure ImGuiIO_AddMousePosEvent(self: PImGuiIO; x: Single; y: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiIO_AddMousePosEvent';

procedure ImGuiIO_AddMouseButtonEvent(self: PImGuiIO; button: Integer; down: Boolean); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiIO_AddMouseButtonEvent';

procedure ImGuiIO_AddMouseWheelEvent(self: PImGuiIO; wheel_x: Single; wheel_y: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiIO_AddMouseWheelEvent';

procedure ImGuiIO_AddMouseSourceEvent(self: PImGuiIO; source: ImGuiMouseSource); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiIO_AddMouseSourceEvent';

procedure ImGuiIO_AddMouseViewportEvent(self: PImGuiIO; id: ImGuiID); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiIO_AddMouseViewportEvent';

procedure ImGuiIO_AddFocusEvent(self: PImGuiIO; focused: Boolean); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiIO_AddFocusEvent';

procedure ImGuiIO_AddInputCharacter(self: PImGuiIO; c: Cardinal); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiIO_AddInputCharacter';

procedure ImGuiIO_AddInputCharacterUTF16(self: PImGuiIO; c: ImWchar16); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiIO_AddInputCharacterUTF16';

procedure ImGuiIO_AddInputCharactersUTF8(self: PImGuiIO; const str: PAnsiChar); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiIO_AddInputCharactersUTF8';

procedure ImGuiIO_SetKeyEventNativeData(self: PImGuiIO; key: ImGuiKey; native_keycode: Integer; native_scancode: Integer; native_legacy_index: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiIO_SetKeyEventNativeData';

procedure ImGuiIO_SetAppAcceptingEvents(self: PImGuiIO; accepting_events: Boolean); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiIO_SetAppAcceptingEvents';

procedure ImGuiIO_ClearEventsQueue(self: PImGuiIO); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiIO_ClearEventsQueue';

procedure ImGuiIO_ClearInputKeys(self: PImGuiIO); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiIO_ClearInputKeys';

procedure ImGuiIO_ClearInputMouse(self: PImGuiIO); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiIO_ClearInputMouse';

function ImGuiIO_ImGuiIO(): PImGuiIO; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiIO_ImGuiIO';

procedure ImGuiIO_destroy(self: PImGuiIO); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiIO_destroy';

function ImGuiInputTextCallbackData_ImGuiInputTextCallbackData(): PImGuiInputTextCallbackData; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiInputTextCallbackData_ImGuiInputTextCallbackData';

procedure ImGuiInputTextCallbackData_destroy(self: PImGuiInputTextCallbackData); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiInputTextCallbackData_destroy';

procedure ImGuiInputTextCallbackData_DeleteChars(self: PImGuiInputTextCallbackData; pos: Integer; bytes_count: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiInputTextCallbackData_DeleteChars';

procedure ImGuiInputTextCallbackData_InsertChars(self: PImGuiInputTextCallbackData; pos: Integer; const text: PAnsiChar; const text_end: PAnsiChar); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiInputTextCallbackData_InsertChars';

procedure ImGuiInputTextCallbackData_SelectAll(self: PImGuiInputTextCallbackData); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiInputTextCallbackData_SelectAll';

procedure ImGuiInputTextCallbackData_ClearSelection(self: PImGuiInputTextCallbackData); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiInputTextCallbackData_ClearSelection';

function ImGuiInputTextCallbackData_HasSelection(self: PImGuiInputTextCallbackData): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiInputTextCallbackData_HasSelection';

function ImGuiWindowClass_ImGuiWindowClass(): PImGuiWindowClass; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiWindowClass_ImGuiWindowClass';

procedure ImGuiWindowClass_destroy(self: PImGuiWindowClass); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiWindowClass_destroy';

function ImGuiPayload_ImGuiPayload(): PImGuiPayload; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiPayload_ImGuiPayload';

procedure ImGuiPayload_destroy(self: PImGuiPayload); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiPayload_destroy';

procedure ImGuiPayload_Clear(self: PImGuiPayload); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiPayload_Clear';

function ImGuiPayload_IsDataType(self: PImGuiPayload; const type_: PAnsiChar): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiPayload_IsDataType';

function ImGuiPayload_IsPreview(self: PImGuiPayload): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiPayload_IsPreview';

function ImGuiPayload_IsDelivery(self: PImGuiPayload): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiPayload_IsDelivery';

function ImGuiOnceUponAFrame_ImGuiOnceUponAFrame(): PImGuiOnceUponAFrame; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiOnceUponAFrame_ImGuiOnceUponAFrame';

procedure ImGuiOnceUponAFrame_destroy(self: PImGuiOnceUponAFrame); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiOnceUponAFrame_destroy';

function ImGuiTextFilter_ImGuiTextFilter(const default_filter: PAnsiChar): PImGuiTextFilter; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTextFilter_ImGuiTextFilter';

procedure ImGuiTextFilter_destroy(self: PImGuiTextFilter); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTextFilter_destroy';

function ImGuiTextFilter_Draw(self: PImGuiTextFilter; const label_: PAnsiChar; width: Single): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTextFilter_Draw';

function ImGuiTextFilter_PassFilter(self: PImGuiTextFilter; const text: PAnsiChar; const text_end: PAnsiChar): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTextFilter_PassFilter';

procedure ImGuiTextFilter_Build(self: PImGuiTextFilter); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTextFilter_Build';

procedure ImGuiTextFilter_Clear(self: PImGuiTextFilter); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTextFilter_Clear';

function ImGuiTextFilter_IsActive(self: PImGuiTextFilter): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTextFilter_IsActive';

function ImGuiTextRange_ImGuiTextRange_Nil(): PImGuiTextRange; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTextRange_ImGuiTextRange_Nil';

procedure ImGuiTextRange_destroy(self: PImGuiTextRange); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTextRange_destroy';

function ImGuiTextRange_ImGuiTextRange_Str(const _b: PAnsiChar; const _e: PAnsiChar): PImGuiTextRange; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTextRange_ImGuiTextRange_Str';

function ImGuiTextRange_empty(self: PImGuiTextRange): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTextRange_empty';

procedure ImGuiTextRange_split(self: PImGuiTextRange; separator: AnsiChar; out_: PImVector_ImGuiTextRange); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTextRange_split';

function ImGuiTextBuffer_ImGuiTextBuffer(): PImGuiTextBuffer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTextBuffer_ImGuiTextBuffer';

procedure ImGuiTextBuffer_destroy(self: PImGuiTextBuffer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTextBuffer_destroy';

function ImGuiTextBuffer_begin(self: PImGuiTextBuffer): PAnsiChar; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTextBuffer_begin';

function ImGuiTextBuffer_end(self: PImGuiTextBuffer): PAnsiChar; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTextBuffer_end';

function ImGuiTextBuffer_size(self: PImGuiTextBuffer): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTextBuffer_size';

function ImGuiTextBuffer_empty(self: PImGuiTextBuffer): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTextBuffer_empty';

procedure ImGuiTextBuffer_clear(self: PImGuiTextBuffer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTextBuffer_clear';

procedure ImGuiTextBuffer_reserve(self: PImGuiTextBuffer; capacity: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTextBuffer_reserve';

function ImGuiTextBuffer_c_str(self: PImGuiTextBuffer): PAnsiChar; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTextBuffer_c_str';

procedure ImGuiTextBuffer_append(self: PImGuiTextBuffer; const str: PAnsiChar; const str_end: PAnsiChar); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTextBuffer_append';

procedure ImGuiTextBuffer_appendfv(self: PImGuiTextBuffer; const fmt: PAnsiChar; args: Pointer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTextBuffer_appendfv';

function ImGuiStoragePair_ImGuiStoragePair_Int(_key: ImGuiID; _val: Integer): PImGuiStoragePair; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiStoragePair_ImGuiStoragePair_Int';

procedure ImGuiStoragePair_destroy(self: PImGuiStoragePair); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiStoragePair_destroy';

function ImGuiStoragePair_ImGuiStoragePair_Float(_key: ImGuiID; _val: Single): PImGuiStoragePair; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiStoragePair_ImGuiStoragePair_Float';

function ImGuiStoragePair_ImGuiStoragePair_Ptr(_key: ImGuiID; _val: Pointer): PImGuiStoragePair; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiStoragePair_ImGuiStoragePair_Ptr';

procedure ImGuiStorage_Clear(self: PImGuiStorage); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiStorage_Clear';

function ImGuiStorage_GetInt(self: PImGuiStorage; key: ImGuiID; default_val: Integer): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiStorage_GetInt';

procedure ImGuiStorage_SetInt(self: PImGuiStorage; key: ImGuiID; val: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiStorage_SetInt';

function ImGuiStorage_GetBool(self: PImGuiStorage; key: ImGuiID; default_val: Boolean): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiStorage_GetBool';

procedure ImGuiStorage_SetBool(self: PImGuiStorage; key: ImGuiID; val: Boolean); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiStorage_SetBool';

function ImGuiStorage_GetFloat(self: PImGuiStorage; key: ImGuiID; default_val: Single): Single; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiStorage_GetFloat';

procedure ImGuiStorage_SetFloat(self: PImGuiStorage; key: ImGuiID; val: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiStorage_SetFloat';

function ImGuiStorage_GetVoidPtr(self: PImGuiStorage; key: ImGuiID): Pointer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiStorage_GetVoidPtr';

procedure ImGuiStorage_SetVoidPtr(self: PImGuiStorage; key: ImGuiID; val: Pointer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiStorage_SetVoidPtr';

function ImGuiStorage_GetIntRef(self: PImGuiStorage; key: ImGuiID; default_val: Integer): PInteger; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiStorage_GetIntRef';

function ImGuiStorage_GetBoolRef(self: PImGuiStorage; key: ImGuiID; default_val: Boolean): PBoolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiStorage_GetBoolRef';

function ImGuiStorage_GetFloatRef(self: PImGuiStorage; key: ImGuiID; default_val: Single): PSingle; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiStorage_GetFloatRef';

function ImGuiStorage_GetVoidPtrRef(self: PImGuiStorage; key: ImGuiID; default_val: Pointer): PPointer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiStorage_GetVoidPtrRef';

procedure ImGuiStorage_BuildSortByKey(self: PImGuiStorage); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiStorage_BuildSortByKey';

procedure ImGuiStorage_SetAllInt(self: PImGuiStorage; val: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiStorage_SetAllInt';

function ImGuiListClipper_ImGuiListClipper(): PImGuiListClipper; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiListClipper_ImGuiListClipper';

procedure ImGuiListClipper_destroy(self: PImGuiListClipper); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiListClipper_destroy';

procedure ImGuiListClipper_Begin(self: PImGuiListClipper; items_count: Integer; items_height: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiListClipper_Begin';

procedure ImGuiListClipper_End(self: PImGuiListClipper); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiListClipper_End';

function ImGuiListClipper_Step(self: PImGuiListClipper): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiListClipper_Step';

procedure ImGuiListClipper_IncludeItemByIndex(self: PImGuiListClipper; item_index: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiListClipper_IncludeItemByIndex';

procedure ImGuiListClipper_IncludeItemsByIndex(self: PImGuiListClipper; item_begin: Integer; item_end: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiListClipper_IncludeItemsByIndex';

procedure ImGuiListClipper_SeekCursorForItem(self: PImGuiListClipper; item_index: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiListClipper_SeekCursorForItem';

function ImColor_ImColor_Nil(): PImColor; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImColor_ImColor_Nil';

procedure ImColor_destroy(self: PImColor); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImColor_destroy';

function ImColor_ImColor_Float(r: Single; g: Single; b: Single; a: Single): PImColor; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImColor_ImColor_Float';

function ImColor_ImColor_Vec4(col: ImVec4): PImColor; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImColor_ImColor_Vec4';

function ImColor_ImColor_Int(r: Integer; g: Integer; b: Integer; a: Integer): PImColor; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImColor_ImColor_Int';

function ImColor_ImColor_U32(rgba: ImU32): PImColor; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImColor_ImColor_U32';

procedure ImColor_SetHSV(self: PImColor; h: Single; s: Single; v: Single; a: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImColor_SetHSV';

procedure ImColor_HSV(pOut: PImColor; h: Single; s: Single; v: Single; a: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImColor_HSV';

function ImGuiSelectionBasicStorage_ImGuiSelectionBasicStorage(): PImGuiSelectionBasicStorage; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiSelectionBasicStorage_ImGuiSelectionBasicStorage';

procedure ImGuiSelectionBasicStorage_destroy(self: PImGuiSelectionBasicStorage); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiSelectionBasicStorage_destroy';

procedure ImGuiSelectionBasicStorage_ApplyRequests(self: PImGuiSelectionBasicStorage; ms_io: PImGuiMultiSelectIO); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiSelectionBasicStorage_ApplyRequests';

function ImGuiSelectionBasicStorage_Contains(self: PImGuiSelectionBasicStorage; id: ImGuiID): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiSelectionBasicStorage_Contains';

procedure ImGuiSelectionBasicStorage_Clear(self: PImGuiSelectionBasicStorage); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiSelectionBasicStorage_Clear';

procedure ImGuiSelectionBasicStorage_Swap(self: PImGuiSelectionBasicStorage; r: PImGuiSelectionBasicStorage); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiSelectionBasicStorage_Swap';

procedure ImGuiSelectionBasicStorage_SetItemSelected(self: PImGuiSelectionBasicStorage; id: ImGuiID; selected: Boolean); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiSelectionBasicStorage_SetItemSelected';

function ImGuiSelectionBasicStorage_GetNextSelectedItem(self: PImGuiSelectionBasicStorage; opaque_it: PPointer; out_id: PImGuiID): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiSelectionBasicStorage_GetNextSelectedItem';

function ImGuiSelectionBasicStorage_GetStorageIdFromIndex(self: PImGuiSelectionBasicStorage; idx: Integer): ImGuiID; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiSelectionBasicStorage_GetStorageIdFromIndex';

function ImGuiSelectionExternalStorage_ImGuiSelectionExternalStorage(): PImGuiSelectionExternalStorage; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiSelectionExternalStorage_ImGuiSelectionExternalStorage';

procedure ImGuiSelectionExternalStorage_destroy(self: PImGuiSelectionExternalStorage); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiSelectionExternalStorage_destroy';

procedure ImGuiSelectionExternalStorage_ApplyRequests(self: PImGuiSelectionExternalStorage; ms_io: PImGuiMultiSelectIO); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiSelectionExternalStorage_ApplyRequests';

function ImDrawCmd_ImDrawCmd(): PImDrawCmd; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawCmd_ImDrawCmd';

procedure ImDrawCmd_destroy(self: PImDrawCmd); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawCmd_destroy';

function ImDrawCmd_GetTexID(self: PImDrawCmd): ImTextureID; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawCmd_GetTexID';

function ImDrawListSplitter_ImDrawListSplitter(): PImDrawListSplitter; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawListSplitter_ImDrawListSplitter';

procedure ImDrawListSplitter_destroy(self: PImDrawListSplitter); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawListSplitter_destroy';

procedure ImDrawListSplitter_Clear(self: PImDrawListSplitter); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawListSplitter_Clear';

procedure ImDrawListSplitter_ClearFreeMemory(self: PImDrawListSplitter); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawListSplitter_ClearFreeMemory';

procedure ImDrawListSplitter_Split(self: PImDrawListSplitter; draw_list: PImDrawList; count: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawListSplitter_Split';

procedure ImDrawListSplitter_Merge(self: PImDrawListSplitter; draw_list: PImDrawList); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawListSplitter_Merge';

procedure ImDrawListSplitter_SetCurrentChannel(self: PImDrawListSplitter; draw_list: PImDrawList; channel_idx: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawListSplitter_SetCurrentChannel';

function ImDrawList_ImDrawList(shared_data: PImDrawListSharedData): PImDrawList; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_ImDrawList';

procedure ImDrawList_destroy(self: PImDrawList); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_destroy';

procedure ImDrawList_PushClipRect(self: PImDrawList; clip_rect_min: ImVec2; clip_rect_max: ImVec2; intersect_with_current_clip_rect: Boolean); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_PushClipRect';

procedure ImDrawList_PushClipRectFullScreen(self: PImDrawList); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_PushClipRectFullScreen';

procedure ImDrawList_PopClipRect(self: PImDrawList); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_PopClipRect';

procedure ImDrawList_PushTextureID(self: PImDrawList; texture_id: ImTextureID); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_PushTextureID';

procedure ImDrawList_PopTextureID(self: PImDrawList); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_PopTextureID';

procedure ImDrawList_GetClipRectMin(pOut: PImVec2; self: PImDrawList); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_GetClipRectMin';

procedure ImDrawList_GetClipRectMax(pOut: PImVec2; self: PImDrawList); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_GetClipRectMax';

procedure ImDrawList_AddLine(self: PImDrawList; p1: ImVec2; p2: ImVec2; col: ImU32; thickness: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_AddLine';

procedure ImDrawList_AddRect(self: PImDrawList; p_min: ImVec2; p_max: ImVec2; col: ImU32; rounding: Single; flags: ImDrawFlags; thickness: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_AddRect';

procedure ImDrawList_AddRectFilled(self: PImDrawList; p_min: ImVec2; p_max: ImVec2; col: ImU32; rounding: Single; flags: ImDrawFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_AddRectFilled';

procedure ImDrawList_AddRectFilledMultiColor(self: PImDrawList; p_min: ImVec2; p_max: ImVec2; col_upr_left: ImU32; col_upr_right: ImU32; col_bot_right: ImU32; col_bot_left: ImU32); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_AddRectFilledMultiColor';

procedure ImDrawList_AddQuad(self: PImDrawList; p1: ImVec2; p2: ImVec2; p3: ImVec2; p4: ImVec2; col: ImU32; thickness: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_AddQuad';

procedure ImDrawList_AddQuadFilled(self: PImDrawList; p1: ImVec2; p2: ImVec2; p3: ImVec2; p4: ImVec2; col: ImU32); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_AddQuadFilled';

procedure ImDrawList_AddTriangle(self: PImDrawList; p1: ImVec2; p2: ImVec2; p3: ImVec2; col: ImU32; thickness: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_AddTriangle';

procedure ImDrawList_AddTriangleFilled(self: PImDrawList; p1: ImVec2; p2: ImVec2; p3: ImVec2; col: ImU32); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_AddTriangleFilled';

procedure ImDrawList_AddCircle(self: PImDrawList; center: ImVec2; radius: Single; col: ImU32; num_segments: Integer; thickness: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_AddCircle';

procedure ImDrawList_AddCircleFilled(self: PImDrawList; center: ImVec2; radius: Single; col: ImU32; num_segments: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_AddCircleFilled';

procedure ImDrawList_AddNgon(self: PImDrawList; center: ImVec2; radius: Single; col: ImU32; num_segments: Integer; thickness: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_AddNgon';

procedure ImDrawList_AddNgonFilled(self: PImDrawList; center: ImVec2; radius: Single; col: ImU32; num_segments: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_AddNgonFilled';

procedure ImDrawList_AddEllipse(self: PImDrawList; center: ImVec2; radius: ImVec2; col: ImU32; rot: Single; num_segments: Integer; thickness: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_AddEllipse';

procedure ImDrawList_AddEllipseFilled(self: PImDrawList; center: ImVec2; radius: ImVec2; col: ImU32; rot: Single; num_segments: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_AddEllipseFilled';

procedure ImDrawList_AddText_Vec2(self: PImDrawList; pos: ImVec2; col: ImU32; const text_begin: PAnsiChar; const text_end: PAnsiChar); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_AddText_Vec2';

procedure ImDrawList_AddText_FontPtr(self: PImDrawList; const font: PImFont; font_size: Single; pos: ImVec2; col: ImU32; const text_begin: PAnsiChar; const text_end: PAnsiChar; wrap_width: Single; const cpu_fine_clip_rect: PImVec4); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_AddText_FontPtr';

procedure ImDrawList_AddBezierCubic(self: PImDrawList; p1: ImVec2; p2: ImVec2; p3: ImVec2; p4: ImVec2; col: ImU32; thickness: Single; num_segments: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_AddBezierCubic';

procedure ImDrawList_AddBezierQuadratic(self: PImDrawList; p1: ImVec2; p2: ImVec2; p3: ImVec2; col: ImU32; thickness: Single; num_segments: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_AddBezierQuadratic';

procedure ImDrawList_AddPolyline(self: PImDrawList; const points: PImVec2; num_points: Integer; col: ImU32; flags: ImDrawFlags; thickness: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_AddPolyline';

procedure ImDrawList_AddConvexPolyFilled(self: PImDrawList; const points: PImVec2; num_points: Integer; col: ImU32); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_AddConvexPolyFilled';

procedure ImDrawList_AddConcavePolyFilled(self: PImDrawList; const points: PImVec2; num_points: Integer; col: ImU32); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_AddConcavePolyFilled';

procedure ImDrawList_AddImage(self: PImDrawList; user_texture_id: ImTextureID; p_min: ImVec2; p_max: ImVec2; uv_min: ImVec2; uv_max: ImVec2; col: ImU32); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_AddImage';

procedure ImDrawList_AddImageQuad(self: PImDrawList; user_texture_id: ImTextureID; p1: ImVec2; p2: ImVec2; p3: ImVec2; p4: ImVec2; uv1: ImVec2; uv2: ImVec2; uv3: ImVec2; uv4: ImVec2; col: ImU32); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_AddImageQuad';

procedure ImDrawList_AddImageRounded(self: PImDrawList; user_texture_id: ImTextureID; p_min: ImVec2; p_max: ImVec2; uv_min: ImVec2; uv_max: ImVec2; col: ImU32; rounding: Single; flags: ImDrawFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_AddImageRounded';

procedure ImDrawList_PathClear(self: PImDrawList); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_PathClear';

procedure ImDrawList_PathLineTo(self: PImDrawList; pos: ImVec2); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_PathLineTo';

procedure ImDrawList_PathLineToMergeDuplicate(self: PImDrawList; pos: ImVec2); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_PathLineToMergeDuplicate';

procedure ImDrawList_PathFillConvex(self: PImDrawList; col: ImU32); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_PathFillConvex';

procedure ImDrawList_PathFillConcave(self: PImDrawList; col: ImU32); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_PathFillConcave';

procedure ImDrawList_PathStroke(self: PImDrawList; col: ImU32; flags: ImDrawFlags; thickness: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_PathStroke';

procedure ImDrawList_PathArcTo(self: PImDrawList; center: ImVec2; radius: Single; a_min: Single; a_max: Single; num_segments: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_PathArcTo';

procedure ImDrawList_PathArcToFast(self: PImDrawList; center: ImVec2; radius: Single; a_min_of_12: Integer; a_max_of_12: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_PathArcToFast';

procedure ImDrawList_PathEllipticalArcTo(self: PImDrawList; center: ImVec2; radius: ImVec2; rot: Single; a_min: Single; a_max: Single; num_segments: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_PathEllipticalArcTo';

procedure ImDrawList_PathBezierCubicCurveTo(self: PImDrawList; p2: ImVec2; p3: ImVec2; p4: ImVec2; num_segments: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_PathBezierCubicCurveTo';

procedure ImDrawList_PathBezierQuadraticCurveTo(self: PImDrawList; p2: ImVec2; p3: ImVec2; num_segments: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_PathBezierQuadraticCurveTo';

procedure ImDrawList_PathRect(self: PImDrawList; rect_min: ImVec2; rect_max: ImVec2; rounding: Single; flags: ImDrawFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_PathRect';

procedure ImDrawList_AddCallback(self: PImDrawList; callback: ImDrawCallback; callback_data: Pointer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_AddCallback';

procedure ImDrawList_AddDrawCmd(self: PImDrawList); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_AddDrawCmd';

function ImDrawList_CloneOutput(self: PImDrawList): PImDrawList; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_CloneOutput';

procedure ImDrawList_ChannelsSplit(self: PImDrawList; count: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_ChannelsSplit';

procedure ImDrawList_ChannelsMerge(self: PImDrawList); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_ChannelsMerge';

procedure ImDrawList_ChannelsSetCurrent(self: PImDrawList; n: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_ChannelsSetCurrent';

procedure ImDrawList_PrimReserve(self: PImDrawList; idx_count: Integer; vtx_count: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_PrimReserve';

procedure ImDrawList_PrimUnreserve(self: PImDrawList; idx_count: Integer; vtx_count: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_PrimUnreserve';

procedure ImDrawList_PrimRect(self: PImDrawList; a: ImVec2; b: ImVec2; col: ImU32); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_PrimRect';

procedure ImDrawList_PrimRectUV(self: PImDrawList; a: ImVec2; b: ImVec2; uv_a: ImVec2; uv_b: ImVec2; col: ImU32); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_PrimRectUV';

procedure ImDrawList_PrimQuadUV(self: PImDrawList; a: ImVec2; b: ImVec2; c: ImVec2; d: ImVec2; uv_a: ImVec2; uv_b: ImVec2; uv_c: ImVec2; uv_d: ImVec2; col: ImU32); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_PrimQuadUV';

procedure ImDrawList_PrimWriteVtx(self: PImDrawList; pos: ImVec2; uv: ImVec2; col: ImU32); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_PrimWriteVtx';

procedure ImDrawList_PrimWriteIdx(self: PImDrawList; idx: ImDrawIdx); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_PrimWriteIdx';

procedure ImDrawList_PrimVtx(self: PImDrawList; pos: ImVec2; uv: ImVec2; col: ImU32); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList_PrimVtx';

procedure ImDrawList__ResetForNewFrame(self: PImDrawList); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList__ResetForNewFrame';

procedure ImDrawList__ClearFreeMemory(self: PImDrawList); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList__ClearFreeMemory';

procedure ImDrawList__PopUnusedDrawCmd(self: PImDrawList); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList__PopUnusedDrawCmd';

procedure ImDrawList__TryMergeDrawCmds(self: PImDrawList); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList__TryMergeDrawCmds';

procedure ImDrawList__OnChangedClipRect(self: PImDrawList); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList__OnChangedClipRect';

procedure ImDrawList__OnChangedTextureID(self: PImDrawList); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList__OnChangedTextureID';

procedure ImDrawList__OnChangedVtxOffset(self: PImDrawList); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList__OnChangedVtxOffset';

function ImDrawList__CalcCircleAutoSegmentCount(self: PImDrawList; radius: Single): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList__CalcCircleAutoSegmentCount';

procedure ImDrawList__PathArcToFastEx(self: PImDrawList; center: ImVec2; radius: Single; a_min_sample: Integer; a_max_sample: Integer; a_step: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList__PathArcToFastEx';

procedure ImDrawList__PathArcToN(self: PImDrawList; center: ImVec2; radius: Single; a_min: Single; a_max: Single; num_segments: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawList__PathArcToN';

function ImDrawData_ImDrawData(): PImDrawData; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawData_ImDrawData';

procedure ImDrawData_destroy(self: PImDrawData); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawData_destroy';

procedure ImDrawData_Clear(self: PImDrawData); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawData_Clear';

procedure ImDrawData_AddDrawList(self: PImDrawData; draw_list: PImDrawList); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawData_AddDrawList';

procedure ImDrawData_DeIndexAllBuffers(self: PImDrawData); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawData_DeIndexAllBuffers';

procedure ImDrawData_ScaleClipRects(self: PImDrawData; fb_scale: ImVec2); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawData_ScaleClipRects';

function ImFontConfig_ImFontConfig(): PImFontConfig; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontConfig_ImFontConfig';

procedure ImFontConfig_destroy(self: PImFontConfig); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontConfig_destroy';

function ImFontGlyphRangesBuilder_ImFontGlyphRangesBuilder(): PImFontGlyphRangesBuilder; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontGlyphRangesBuilder_ImFontGlyphRangesBuilder';

procedure ImFontGlyphRangesBuilder_destroy(self: PImFontGlyphRangesBuilder); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontGlyphRangesBuilder_destroy';

procedure ImFontGlyphRangesBuilder_Clear(self: PImFontGlyphRangesBuilder); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontGlyphRangesBuilder_Clear';

function ImFontGlyphRangesBuilder_GetBit(self: PImFontGlyphRangesBuilder; n: NativeUInt): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontGlyphRangesBuilder_GetBit';

procedure ImFontGlyphRangesBuilder_SetBit(self: PImFontGlyphRangesBuilder; n: NativeUInt); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontGlyphRangesBuilder_SetBit';

procedure ImFontGlyphRangesBuilder_AddChar(self: PImFontGlyphRangesBuilder; c: ImWchar); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontGlyphRangesBuilder_AddChar';

procedure ImFontGlyphRangesBuilder_AddText(self: PImFontGlyphRangesBuilder; const text: PAnsiChar; const text_end: PAnsiChar); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontGlyphRangesBuilder_AddText';

procedure ImFontGlyphRangesBuilder_AddRanges(self: PImFontGlyphRangesBuilder; const ranges: PImWchar); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontGlyphRangesBuilder_AddRanges';

procedure ImFontGlyphRangesBuilder_BuildRanges(self: PImFontGlyphRangesBuilder; out_ranges: PImVector_ImWchar); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontGlyphRangesBuilder_BuildRanges';

function ImFontAtlasCustomRect_ImFontAtlasCustomRect(): PImFontAtlasCustomRect; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlasCustomRect_ImFontAtlasCustomRect';

procedure ImFontAtlasCustomRect_destroy(self: PImFontAtlasCustomRect); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlasCustomRect_destroy';

function ImFontAtlasCustomRect_IsPacked(self: PImFontAtlasCustomRect): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlasCustomRect_IsPacked';

function ImFontAtlas_ImFontAtlas(): PImFontAtlas; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlas_ImFontAtlas';

procedure ImFontAtlas_destroy(self: PImFontAtlas); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlas_destroy';

function ImFontAtlas_AddFont(self: PImFontAtlas; const font_cfg: PImFontConfig): PImFont; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlas_AddFont';

function ImFontAtlas_AddFontDefault(self: PImFontAtlas; const font_cfg: PImFontConfig): PImFont; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlas_AddFontDefault';

function ImFontAtlas_AddFontFromFileTTF(self: PImFontAtlas; const filename: PAnsiChar; size_pixels: Single; const font_cfg: PImFontConfig; const glyph_ranges: PImWchar): PImFont; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlas_AddFontFromFileTTF';

function ImFontAtlas_AddFontFromMemoryTTF(self: PImFontAtlas; font_data: Pointer; font_data_size: Integer; size_pixels: Single; const font_cfg: PImFontConfig; const glyph_ranges: PImWchar): PImFont; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlas_AddFontFromMemoryTTF';

function ImFontAtlas_AddFontFromMemoryCompressedTTF(self: PImFontAtlas; const compressed_font_data: Pointer; compressed_font_data_size: Integer; size_pixels: Single; const font_cfg: PImFontConfig; const glyph_ranges: PImWchar): PImFont; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlas_AddFontFromMemoryCompressedTTF';

function ImFontAtlas_AddFontFromMemoryCompressedBase85TTF(self: PImFontAtlas; const compressed_font_data_base85: PAnsiChar; size_pixels: Single; const font_cfg: PImFontConfig; const glyph_ranges: PImWchar): PImFont; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlas_AddFontFromMemoryCompressedBase85TTF';

procedure ImFontAtlas_ClearInputData(self: PImFontAtlas); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlas_ClearInputData';

procedure ImFontAtlas_ClearTexData(self: PImFontAtlas); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlas_ClearTexData';

procedure ImFontAtlas_ClearFonts(self: PImFontAtlas); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlas_ClearFonts';

procedure ImFontAtlas_Clear(self: PImFontAtlas); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlas_Clear';

function ImFontAtlas_Build(self: PImFontAtlas): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlas_Build';

procedure ImFontAtlas_GetTexDataAsAlpha8(self: PImFontAtlas; out_pixels: PPByte; out_width: PInteger; out_height: PInteger; out_bytes_per_pixel: PInteger); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlas_GetTexDataAsAlpha8';

procedure ImFontAtlas_GetTexDataAsRGBA32(self: PImFontAtlas; out_pixels: PPByte; out_width: PInteger; out_height: PInteger; out_bytes_per_pixel: PInteger); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlas_GetTexDataAsRGBA32';

function ImFontAtlas_IsBuilt(self: PImFontAtlas): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlas_IsBuilt';

procedure ImFontAtlas_SetTexID(self: PImFontAtlas; id: ImTextureID); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlas_SetTexID';

function ImFontAtlas_GetGlyphRangesDefault(self: PImFontAtlas): PImWchar; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlas_GetGlyphRangesDefault';

function ImFontAtlas_GetGlyphRangesGreek(self: PImFontAtlas): PImWchar; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlas_GetGlyphRangesGreek';

function ImFontAtlas_GetGlyphRangesKorean(self: PImFontAtlas): PImWchar; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlas_GetGlyphRangesKorean';

function ImFontAtlas_GetGlyphRangesJapanese(self: PImFontAtlas): PImWchar; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlas_GetGlyphRangesJapanese';

function ImFontAtlas_GetGlyphRangesChineseFull(self: PImFontAtlas): PImWchar; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlas_GetGlyphRangesChineseFull';

function ImFontAtlas_GetGlyphRangesChineseSimplifiedCommon(self: PImFontAtlas): PImWchar; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlas_GetGlyphRangesChineseSimplifiedCommon';

function ImFontAtlas_GetGlyphRangesCyrillic(self: PImFontAtlas): PImWchar; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlas_GetGlyphRangesCyrillic';

function ImFontAtlas_GetGlyphRangesThai(self: PImFontAtlas): PImWchar; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlas_GetGlyphRangesThai';

function ImFontAtlas_GetGlyphRangesVietnamese(self: PImFontAtlas): PImWchar; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlas_GetGlyphRangesVietnamese';

function ImFontAtlas_AddCustomRectRegular(self: PImFontAtlas; width: Integer; height: Integer): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlas_AddCustomRectRegular';

function ImFontAtlas_AddCustomRectFontGlyph(self: PImFontAtlas; font: PImFont; id: ImWchar; width: Integer; height: Integer; advance_x: Single; offset: ImVec2): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlas_AddCustomRectFontGlyph';

function ImFontAtlas_GetCustomRectByIndex(self: PImFontAtlas; index: Integer): PImFontAtlasCustomRect; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlas_GetCustomRectByIndex';

procedure ImFontAtlas_CalcCustomRectUV(self: PImFontAtlas; const rect: PImFontAtlasCustomRect; out_uv_min: PImVec2; out_uv_max: PImVec2); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlas_CalcCustomRectUV';

function ImFontAtlas_GetMouseCursorTexData(self: PImFontAtlas; cursor: ImGuiMouseCursor; out_offset: PImVec2; out_size: PImVec2; out_uv_border: PImVec2; out_uv_fill: PImVec2): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFontAtlas_GetMouseCursorTexData';

function ImFont_ImFont(): PImFont; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFont_ImFont';

procedure ImFont_destroy(self: PImFont); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFont_destroy';

function ImFont_FindGlyph(self: PImFont; c: ImWchar): PImFontGlyph; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFont_FindGlyph';

function ImFont_FindGlyphNoFallback(self: PImFont; c: ImWchar): PImFontGlyph; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFont_FindGlyphNoFallback';

function ImFont_GetCharAdvance(self: PImFont; c: ImWchar): Single; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFont_GetCharAdvance';

function ImFont_IsLoaded(self: PImFont): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFont_IsLoaded';

function ImFont_GetDebugName(self: PImFont): PAnsiChar; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFont_GetDebugName';

procedure ImFont_CalcTextSizeA(pOut: PImVec2; self: PImFont; size: Single; max_width: Single; wrap_width: Single; const text_begin: PAnsiChar; const text_end: PAnsiChar; remaining: PPAnsiChar); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFont_CalcTextSizeA';

function ImFont_CalcWordWrapPositionA(self: PImFont; scale: Single; const text: PAnsiChar; const text_end: PAnsiChar; wrap_width: Single): PAnsiChar; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFont_CalcWordWrapPositionA';

procedure ImFont_RenderChar(self: PImFont; draw_list: PImDrawList; size: Single; pos: ImVec2; col: ImU32; c: ImWchar); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFont_RenderChar';

procedure ImFont_RenderText(self: PImFont; draw_list: PImDrawList; size: Single; pos: ImVec2; col: ImU32; clip_rect: ImVec4; const text_begin: PAnsiChar; const text_end: PAnsiChar; wrap_width: Single; cpu_fine_clip: Boolean); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFont_RenderText';

procedure ImFont_BuildLookupTable(self: PImFont); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFont_BuildLookupTable';

procedure ImFont_ClearOutputData(self: PImFont); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFont_ClearOutputData';

procedure ImFont_GrowIndex(self: PImFont; new_size: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFont_GrowIndex';

procedure ImFont_AddGlyph(self: PImFont; const src_cfg: PImFontConfig; c: ImWchar; x0: Single; y0: Single; x1: Single; y1: Single; u0: Single; v0: Single; u1: Single; v1: Single; advance_x: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFont_AddGlyph';

procedure ImFont_AddRemapChar(self: PImFont; dst: ImWchar; src: ImWchar; overwrite_dst: Boolean); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFont_AddRemapChar';

procedure ImFont_SetGlyphVisible(self: PImFont; c: ImWchar; visible: Boolean); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFont_SetGlyphVisible';

function ImFont_IsGlyphRangeUnused(self: PImFont; c_begin: Cardinal; c_last: Cardinal): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImFont_IsGlyphRangeUnused';

function ImGuiViewport_ImGuiViewport(): PImGuiViewport; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiViewport_ImGuiViewport';

procedure ImGuiViewport_destroy(self: PImGuiViewport); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiViewport_destroy';

procedure ImGuiViewport_GetCenter(pOut: PImVec2; self: PImGuiViewport); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiViewport_GetCenter';

procedure ImGuiViewport_GetWorkCenter(pOut: PImVec2; self: PImGuiViewport); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiViewport_GetWorkCenter';

function ImGuiPlatformIO_ImGuiPlatformIO(): PImGuiPlatformIO; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiPlatformIO_ImGuiPlatformIO';

procedure ImGuiPlatformIO_destroy(self: PImGuiPlatformIO); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiPlatformIO_destroy';

function ImGuiPlatformMonitor_ImGuiPlatformMonitor(): PImGuiPlatformMonitor; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiPlatformMonitor_ImGuiPlatformMonitor';

procedure ImGuiPlatformMonitor_destroy(self: PImGuiPlatformMonitor); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiPlatformMonitor_destroy';

function ImGuiPlatformImeData_ImGuiPlatformImeData(): PImGuiPlatformImeData; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiPlatformImeData_ImGuiPlatformImeData';

procedure ImGuiPlatformImeData_destroy(self: PImGuiPlatformImeData); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiPlatformImeData_destroy';

function igImHashData(const data: Pointer; data_size: NativeUInt; seed: ImGuiID): ImGuiID; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImHashData';

function igImHashStr(const data: PAnsiChar; data_size: NativeUInt; seed: ImGuiID): ImGuiID; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImHashStr';

type
  igImQsort_compare_func = function(const p1: Pointer; const p2: Pointer): Integer; cdecl;

procedure igImQsort(base: Pointer; count: NativeUInt; size_of_element: NativeUInt; compare_func: igImQsort_compare_func); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImQsort';

function igImAlphaBlendColors(col_a: ImU32; col_b: ImU32): ImU32; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImAlphaBlendColors';

function igImIsPowerOfTwo_Int(v: Integer): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImIsPowerOfTwo_Int';

function igImIsPowerOfTwo_U64(v: ImU64): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImIsPowerOfTwo_U64';

function igImUpperPowerOfTwo(v: Integer): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImUpperPowerOfTwo';

function igImStricmp(const str1: PAnsiChar; const str2: PAnsiChar): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImStricmp';

function igImStrnicmp(const str1: PAnsiChar; const str2: PAnsiChar; count: NativeUInt): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImStrnicmp';

procedure igImStrncpy(dst: PAnsiChar; const src: PAnsiChar; count: NativeUInt); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImStrncpy';

function igImStrdup(const str: PAnsiChar): PAnsiChar; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImStrdup';

function igImStrdupcpy(dst: PAnsiChar; p_dst_size: PNativeUInt; const str: PAnsiChar): PAnsiChar; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImStrdupcpy';

function igImStrchrRange(const str_begin: PAnsiChar; const str_end: PAnsiChar; c: AnsiChar): PAnsiChar; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImStrchrRange';

function igImStreolRange(const str: PAnsiChar; const str_end: PAnsiChar): PAnsiChar; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImStreolRange';

function igImStristr(const haystack: PAnsiChar; const haystack_end: PAnsiChar; const needle: PAnsiChar; const needle_end: PAnsiChar): PAnsiChar; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImStristr';

procedure igImStrTrimBlanks(str: PAnsiChar); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImStrTrimBlanks';

function igImStrSkipBlank(const str: PAnsiChar): PAnsiChar; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImStrSkipBlank';

function igImStrlenW(const str: PImWchar): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImStrlenW';

function igImStrbolW(const buf_mid_line: PImWchar; const buf_begin: PImWchar): PImWchar; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImStrbolW';

function igImToUpper(c: AnsiChar): AnsiChar; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImToUpper';

function igImCharIsBlankA(c: AnsiChar): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImCharIsBlankA';

function igImCharIsBlankW(c: Cardinal): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImCharIsBlankW';

function igImCharIsXdigitA(c: AnsiChar): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImCharIsXdigitA';

function igImFormatString(buf: PAnsiChar; buf_size: NativeUInt; const fmt: PAnsiChar): Integer varargs; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImFormatString';

function igImFormatStringV(buf: PAnsiChar; buf_size: NativeUInt; const fmt: PAnsiChar; args: Pointer): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImFormatStringV';

procedure igImFormatStringToTempBuffer(out_buf: PPAnsiChar; out_buf_end: PPAnsiChar; const fmt: PAnsiChar) varargs; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImFormatStringToTempBuffer';

procedure igImFormatStringToTempBufferV(out_buf: PPAnsiChar; out_buf_end: PPAnsiChar; const fmt: PAnsiChar; args: Pointer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImFormatStringToTempBufferV';

function igImParseFormatFindStart(const format: PAnsiChar): PAnsiChar; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImParseFormatFindStart';

function igImParseFormatFindEnd(const format: PAnsiChar): PAnsiChar; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImParseFormatFindEnd';

function igImParseFormatTrimDecorations(const format: PAnsiChar; buf: PAnsiChar; buf_size: NativeUInt): PAnsiChar; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImParseFormatTrimDecorations';

procedure igImParseFormatSanitizeForPrinting(const fmt_in: PAnsiChar; fmt_out: PAnsiChar; fmt_out_size: NativeUInt); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImParseFormatSanitizeForPrinting';

function igImParseFormatSanitizeForScanning(const fmt_in: PAnsiChar; fmt_out: PAnsiChar; fmt_out_size: NativeUInt): PAnsiChar; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImParseFormatSanitizeForScanning';

function igImParseFormatPrecision(const format: PAnsiChar; default_value: Integer): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImParseFormatPrecision';

function igImTextCharToUtf8(out_buf: PAnsiChar; c: Cardinal): PAnsiChar; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImTextCharToUtf8';

function igImTextStrToUtf8(out_buf: PAnsiChar; out_buf_size: Integer; const in_text: PImWchar; const in_text_end: PImWchar): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImTextStrToUtf8';

function igImTextCharFromUtf8(out_char: PCardinal; const in_text: PAnsiChar; const in_text_end: PAnsiChar): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImTextCharFromUtf8';

function igImTextStrFromUtf8(out_buf: PImWchar; out_buf_size: Integer; const in_text: PAnsiChar; const in_text_end: PAnsiChar; in_remaining: PPAnsiChar): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImTextStrFromUtf8';

function igImTextCountCharsFromUtf8(const in_text: PAnsiChar; const in_text_end: PAnsiChar): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImTextCountCharsFromUtf8';

function igImTextCountUtf8BytesFromChar(const in_text: PAnsiChar; const in_text_end: PAnsiChar): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImTextCountUtf8BytesFromChar';

function igImTextCountUtf8BytesFromStr(const in_text: PImWchar; const in_text_end: PImWchar): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImTextCountUtf8BytesFromStr';

function igImTextFindPreviousUtf8Codepoint(const in_text_start: PAnsiChar; const in_text_curr: PAnsiChar): PAnsiChar; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImTextFindPreviousUtf8Codepoint';

function igImTextCountLines(const in_text: PAnsiChar; const in_text_end: PAnsiChar): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImTextCountLines';

function igImFileOpen(const filename: PAnsiChar; const mode: PAnsiChar): ImFileHandle; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImFileOpen';

function igImFileClose(file_: ImFileHandle): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImFileClose';

function igImFileGetSize(file_: ImFileHandle): ImU64; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImFileGetSize';

function igImFileRead(data: Pointer; size: ImU64; count: ImU64; file_: ImFileHandle): ImU64; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImFileRead';

function igImFileWrite(const data: Pointer; size: ImU64; count: ImU64; file_: ImFileHandle): ImU64; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImFileWrite';

function igImFileLoadToMemory(const filename: PAnsiChar; const mode: PAnsiChar; out_file_size: PNativeUInt; padding_bytes: Integer): Pointer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImFileLoadToMemory';

function igImPow_Float(x: Single; y: Single): Single; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImPow_Float';

function igImPow_double(x: Double; y: Double): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImPow_double';

function igImLog_Float(x: Single): Single; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImLog_Float';

function igImLog_double(x: Double): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImLog_double';

function igImAbs_Int(x: Integer): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImAbs_Int';

function igImAbs_Float(x: Single): Single; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImAbs_Float';

function igImAbs_double(x: Double): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImAbs_double';

function igImSign_Float(x: Single): Single; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImSign_Float';

function igImSign_double(x: Double): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImSign_double';

function igImRsqrt_Float(x: Single): Single; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImRsqrt_Float';

function igImRsqrt_double(x: Double): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImRsqrt_double';

procedure igImMin(pOut: PImVec2; lhs: ImVec2; rhs: ImVec2); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImMin';

procedure igImMax(pOut: PImVec2; lhs: ImVec2; rhs: ImVec2); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImMax';

procedure igImClamp(pOut: PImVec2; v: ImVec2; mn: ImVec2; mx: ImVec2); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImClamp';

procedure igImLerp_Vec2Float(pOut: PImVec2; a: ImVec2; b: ImVec2; t: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImLerp_Vec2Float';

procedure igImLerp_Vec2Vec2(pOut: PImVec2; a: ImVec2; b: ImVec2; t: ImVec2); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImLerp_Vec2Vec2';

procedure igImLerp_Vec4(pOut: PImVec4; a: ImVec4; b: ImVec4; t: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImLerp_Vec4';

function igImSaturate(f: Single): Single; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImSaturate';

function igImLengthSqr_Vec2(lhs: ImVec2): Single; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImLengthSqr_Vec2';

function igImLengthSqr_Vec4(lhs: ImVec4): Single; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImLengthSqr_Vec4';

function igImInvLength(lhs: ImVec2; fail_value: Single): Single; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImInvLength';

function igImTrunc_Float(f: Single): Single; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImTrunc_Float';

procedure igImTrunc_Vec2(pOut: PImVec2; v: ImVec2); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImTrunc_Vec2';

function igImFloor_Float(f: Single): Single; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImFloor_Float';

procedure igImFloor_Vec2(pOut: PImVec2; v: ImVec2); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImFloor_Vec2';

function igImModPositive(a: Integer; b: Integer): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImModPositive';

function igImDot(a: ImVec2; b: ImVec2): Single; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImDot';

procedure igImRotate(pOut: PImVec2; v: ImVec2; cos_a: Single; sin_a: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImRotate';

function igImLinearSweep(current: Single; target: Single; speed: Single): Single; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImLinearSweep';

function igImLinearRemapClamp(s0: Single; s1: Single; d0: Single; d1: Single; x: Single): Single; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImLinearRemapClamp';

procedure igImMul(pOut: PImVec2; lhs: ImVec2; rhs: ImVec2); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImMul';

function igImIsFloatAboveGuaranteedIntegerPrecision(f: Single): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImIsFloatAboveGuaranteedIntegerPrecision';

function igImExponentialMovingAverage(avg: Single; sample: Single; n: Integer): Single; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImExponentialMovingAverage';

procedure igImBezierCubicCalc(pOut: PImVec2; p1: ImVec2; p2: ImVec2; p3: ImVec2; p4: ImVec2; t: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImBezierCubicCalc';

procedure igImBezierCubicClosestPoint(pOut: PImVec2; p1: ImVec2; p2: ImVec2; p3: ImVec2; p4: ImVec2; p: ImVec2; num_segments: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImBezierCubicClosestPoint';

procedure igImBezierCubicClosestPointCasteljau(pOut: PImVec2; p1: ImVec2; p2: ImVec2; p3: ImVec2; p4: ImVec2; p: ImVec2; tess_tol: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImBezierCubicClosestPointCasteljau';

procedure igImBezierQuadraticCalc(pOut: PImVec2; p1: ImVec2; p2: ImVec2; p3: ImVec2; t: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImBezierQuadraticCalc';

procedure igImLineClosestPoint(pOut: PImVec2; a: ImVec2; b: ImVec2; p: ImVec2); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImLineClosestPoint';

function igImTriangleContainsPoint(a: ImVec2; b: ImVec2; c: ImVec2; p: ImVec2): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImTriangleContainsPoint';

procedure igImTriangleClosestPoint(pOut: PImVec2; a: ImVec2; b: ImVec2; c: ImVec2; p: ImVec2); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImTriangleClosestPoint';

procedure igImTriangleBarycentricCoords(a: ImVec2; b: ImVec2; c: ImVec2; p: ImVec2; out_u: PSingle; out_v: PSingle; out_w: PSingle); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImTriangleBarycentricCoords';

function igImTriangleArea(a: ImVec2; b: ImVec2; c: ImVec2): Single; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImTriangleArea';

function igImTriangleIsClockwise(a: ImVec2; b: ImVec2; c: ImVec2): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImTriangleIsClockwise';

function ImVec1_ImVec1_Nil(): PImVec1; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImVec1_ImVec1_Nil';

procedure ImVec1_destroy(self: PImVec1); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImVec1_destroy';

function ImVec1_ImVec1_Float(_x: Single): PImVec1; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImVec1_ImVec1_Float';

function ImVec2ih_ImVec2ih_Nil(): PImVec2ih; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImVec2ih_ImVec2ih_Nil';

procedure ImVec2ih_destroy(self: PImVec2ih); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImVec2ih_destroy';

function ImVec2ih_ImVec2ih_short(_x: Smallint; _y: Smallint): PImVec2ih; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImVec2ih_ImVec2ih_short';

function ImVec2ih_ImVec2ih_Vec2(rhs: ImVec2): PImVec2ih; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImVec2ih_ImVec2ih_Vec2';

function ImRect_ImRect_Nil(): PImRect; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImRect_ImRect_Nil';

procedure ImRect_destroy(self: PImRect); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImRect_destroy';

function ImRect_ImRect_Vec2(min: ImVec2; max: ImVec2): PImRect; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImRect_ImRect_Vec2';

function ImRect_ImRect_Vec4(v: ImVec4): PImRect; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImRect_ImRect_Vec4';

function ImRect_ImRect_Float(x1: Single; y1: Single; x2: Single; y2: Single): PImRect; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImRect_ImRect_Float';

procedure ImRect_GetCenter(pOut: PImVec2; self: PImRect); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImRect_GetCenter';

procedure ImRect_GetSize(pOut: PImVec2; self: PImRect); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImRect_GetSize';

function ImRect_GetWidth(self: PImRect): Single; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImRect_GetWidth';

function ImRect_GetHeight(self: PImRect): Single; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImRect_GetHeight';

function ImRect_GetArea(self: PImRect): Single; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImRect_GetArea';

procedure ImRect_GetTL(pOut: PImVec2; self: PImRect); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImRect_GetTL';

procedure ImRect_GetTR(pOut: PImVec2; self: PImRect); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImRect_GetTR';

procedure ImRect_GetBL(pOut: PImVec2; self: PImRect); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImRect_GetBL';

procedure ImRect_GetBR(pOut: PImVec2; self: PImRect); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImRect_GetBR';

function ImRect_Contains_Vec2(self: PImRect; p: ImVec2): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImRect_Contains_Vec2';

function ImRect_Contains_Rect(self: PImRect; r: ImRect): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImRect_Contains_Rect';

function ImRect_ContainsWithPad(self: PImRect; p: ImVec2; pad: ImVec2): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImRect_ContainsWithPad';

function ImRect_Overlaps(self: PImRect; r: ImRect): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImRect_Overlaps';

procedure ImRect_Add_Vec2(self: PImRect; p: ImVec2); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImRect_Add_Vec2';

procedure ImRect_Add_Rect(self: PImRect; r: ImRect); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImRect_Add_Rect';

procedure ImRect_Expand_Float(self: PImRect; const amount: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImRect_Expand_Float';

procedure ImRect_Expand_Vec2(self: PImRect; amount: ImVec2); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImRect_Expand_Vec2';

procedure ImRect_Translate(self: PImRect; d: ImVec2); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImRect_Translate';

procedure ImRect_TranslateX(self: PImRect; dx: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImRect_TranslateX';

procedure ImRect_TranslateY(self: PImRect; dy: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImRect_TranslateY';

procedure ImRect_ClipWith(self: PImRect; r: ImRect); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImRect_ClipWith';

procedure ImRect_ClipWithFull(self: PImRect; r: ImRect); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImRect_ClipWithFull';

procedure ImRect_Floor(self: PImRect); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImRect_Floor';

function ImRect_IsInverted(self: PImRect): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImRect_IsInverted';

procedure ImRect_ToVec4(pOut: PImVec4; self: PImRect); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImRect_ToVec4';

function igImBitArrayGetStorageSizeInBytes(bitcount: Integer): NativeUInt; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImBitArrayGetStorageSizeInBytes';

procedure igImBitArrayClearAllBits(arr: PImU32; bitcount: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImBitArrayClearAllBits';

function igImBitArrayTestBit(const arr: PImU32; n: Integer): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImBitArrayTestBit';

procedure igImBitArrayClearBit(arr: PImU32; n: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImBitArrayClearBit';

procedure igImBitArraySetBit(arr: PImU32; n: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImBitArraySetBit';

procedure igImBitArraySetBitRange(arr: PImU32; n: Integer; n2: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImBitArraySetBitRange';

procedure ImBitVector_Create(self: PImBitVector; sz: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImBitVector_Create';

procedure ImBitVector_Clear(self: PImBitVector); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImBitVector_Clear';

function ImBitVector_TestBit(self: PImBitVector; n: Integer): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImBitVector_TestBit';

procedure ImBitVector_SetBit(self: PImBitVector; n: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImBitVector_SetBit';

procedure ImBitVector_ClearBit(self: PImBitVector; n: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImBitVector_ClearBit';

procedure ImGuiTextIndex_clear(self: PImGuiTextIndex); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTextIndex_clear';

function ImGuiTextIndex_size(self: PImGuiTextIndex): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTextIndex_size';

function ImGuiTextIndex_get_line_begin(self: PImGuiTextIndex; const base: PAnsiChar; n: Integer): PAnsiChar; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTextIndex_get_line_begin';

function ImGuiTextIndex_get_line_end(self: PImGuiTextIndex; const base: PAnsiChar; n: Integer): PAnsiChar; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTextIndex_get_line_end';

procedure ImGuiTextIndex_append(self: PImGuiTextIndex; const base: PAnsiChar; old_size: Integer; new_size: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTextIndex_append';

function igImLowerBound(in_begin: PImGuiStoragePair; in_end: PImGuiStoragePair; key: ImGuiID): PImGuiStoragePair; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImLowerBound';

function ImDrawListSharedData_ImDrawListSharedData(): PImDrawListSharedData; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawListSharedData_ImDrawListSharedData';

procedure ImDrawListSharedData_destroy(self: PImDrawListSharedData); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawListSharedData_destroy';

procedure ImDrawListSharedData_SetCircleTessellationMaxError(self: PImDrawListSharedData; max_error: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawListSharedData_SetCircleTessellationMaxError';

function ImDrawDataBuilder_ImDrawDataBuilder(): PImDrawDataBuilder; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawDataBuilder_ImDrawDataBuilder';

procedure ImDrawDataBuilder_destroy(self: PImDrawDataBuilder); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawDataBuilder_destroy';

function ImGuiDataVarInfo_GetVarPtr(self: PImGuiDataVarInfo; parent: Pointer): Pointer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiDataVarInfo_GetVarPtr';

function ImGuiStyleMod_ImGuiStyleMod_Int(idx: ImGuiStyleVar; v: Integer): PImGuiStyleMod; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiStyleMod_ImGuiStyleMod_Int';

procedure ImGuiStyleMod_destroy(self: PImGuiStyleMod); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiStyleMod_destroy';

function ImGuiStyleMod_ImGuiStyleMod_Float(idx: ImGuiStyleVar; v: Single): PImGuiStyleMod; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiStyleMod_ImGuiStyleMod_Float';

function ImGuiStyleMod_ImGuiStyleMod_Vec2(idx: ImGuiStyleVar; v: ImVec2): PImGuiStyleMod; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiStyleMod_ImGuiStyleMod_Vec2';

function ImGuiComboPreviewData_ImGuiComboPreviewData(): PImGuiComboPreviewData; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiComboPreviewData_ImGuiComboPreviewData';

procedure ImGuiComboPreviewData_destroy(self: PImGuiComboPreviewData); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiComboPreviewData_destroy';

function ImGuiMenuColumns_ImGuiMenuColumns(): PImGuiMenuColumns; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiMenuColumns_ImGuiMenuColumns';

procedure ImGuiMenuColumns_destroy(self: PImGuiMenuColumns); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiMenuColumns_destroy';

procedure ImGuiMenuColumns_Update(self: PImGuiMenuColumns; spacing: Single; window_reappearing: Boolean); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiMenuColumns_Update';

function ImGuiMenuColumns_DeclColumns(self: PImGuiMenuColumns; w_icon: Single; w_label: Single; w_shortcut: Single; w_mark: Single): Single; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiMenuColumns_DeclColumns';

procedure ImGuiMenuColumns_CalcNextTotalWidth(self: PImGuiMenuColumns; update_offsets: Boolean); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiMenuColumns_CalcNextTotalWidth';

function ImGuiInputTextDeactivatedState_ImGuiInputTextDeactivatedState(): PImGuiInputTextDeactivatedState; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiInputTextDeactivatedState_ImGuiInputTextDeactivatedState';

procedure ImGuiInputTextDeactivatedState_destroy(self: PImGuiInputTextDeactivatedState); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiInputTextDeactivatedState_destroy';

procedure ImGuiInputTextDeactivatedState_ClearFreeMemory(self: PImGuiInputTextDeactivatedState); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiInputTextDeactivatedState_ClearFreeMemory';

function ImGuiInputTextState_ImGuiInputTextState(): PImGuiInputTextState; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiInputTextState_ImGuiInputTextState';

procedure ImGuiInputTextState_destroy(self: PImGuiInputTextState); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiInputTextState_destroy';

procedure ImGuiInputTextState_ClearText(self: PImGuiInputTextState); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiInputTextState_ClearText';

procedure ImGuiInputTextState_ClearFreeMemory(self: PImGuiInputTextState); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiInputTextState_ClearFreeMemory';

function ImGuiInputTextState_GetUndoAvailCount(self: PImGuiInputTextState): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiInputTextState_GetUndoAvailCount';

function ImGuiInputTextState_GetRedoAvailCount(self: PImGuiInputTextState): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiInputTextState_GetRedoAvailCount';

procedure ImGuiInputTextState_OnKeyPressed(self: PImGuiInputTextState; key: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiInputTextState_OnKeyPressed';

procedure ImGuiInputTextState_CursorAnimReset(self: PImGuiInputTextState); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiInputTextState_CursorAnimReset';

procedure ImGuiInputTextState_CursorClamp(self: PImGuiInputTextState); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiInputTextState_CursorClamp';

function ImGuiInputTextState_HasSelection(self: PImGuiInputTextState): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiInputTextState_HasSelection';

procedure ImGuiInputTextState_ClearSelection(self: PImGuiInputTextState); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiInputTextState_ClearSelection';

function ImGuiInputTextState_GetCursorPos(self: PImGuiInputTextState): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiInputTextState_GetCursorPos';

function ImGuiInputTextState_GetSelectionStart(self: PImGuiInputTextState): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiInputTextState_GetSelectionStart';

function ImGuiInputTextState_GetSelectionEnd(self: PImGuiInputTextState): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiInputTextState_GetSelectionEnd';

procedure ImGuiInputTextState_SelectAll(self: PImGuiInputTextState); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiInputTextState_SelectAll';

procedure ImGuiInputTextState_ReloadUserBufAndSelectAll(self: PImGuiInputTextState); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiInputTextState_ReloadUserBufAndSelectAll';

procedure ImGuiInputTextState_ReloadUserBufAndKeepSelection(self: PImGuiInputTextState); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiInputTextState_ReloadUserBufAndKeepSelection';

procedure ImGuiInputTextState_ReloadUserBufAndMoveToEnd(self: PImGuiInputTextState); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiInputTextState_ReloadUserBufAndMoveToEnd';

function ImGuiNextWindowData_ImGuiNextWindowData(): PImGuiNextWindowData; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiNextWindowData_ImGuiNextWindowData';

procedure ImGuiNextWindowData_destroy(self: PImGuiNextWindowData); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiNextWindowData_destroy';

procedure ImGuiNextWindowData_ClearFlags(self: PImGuiNextWindowData); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiNextWindowData_ClearFlags';

function ImGuiNextItemData_ImGuiNextItemData(): PImGuiNextItemData; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiNextItemData_ImGuiNextItemData';

procedure ImGuiNextItemData_destroy(self: PImGuiNextItemData); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiNextItemData_destroy';

procedure ImGuiNextItemData_ClearFlags(self: PImGuiNextItemData); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiNextItemData_ClearFlags';

function ImGuiLastItemData_ImGuiLastItemData(): PImGuiLastItemData; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiLastItemData_ImGuiLastItemData';

procedure ImGuiLastItemData_destroy(self: PImGuiLastItemData); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiLastItemData_destroy';

function ImGuiStackSizes_ImGuiStackSizes(): PImGuiStackSizes; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiStackSizes_ImGuiStackSizes';

procedure ImGuiStackSizes_destroy(self: PImGuiStackSizes); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiStackSizes_destroy';

procedure ImGuiStackSizes_SetToContextState(self: PImGuiStackSizes; ctx: PImGuiContext); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiStackSizes_SetToContextState';

procedure ImGuiStackSizes_CompareWithContextState(self: PImGuiStackSizes; ctx: PImGuiContext); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiStackSizes_CompareWithContextState';

function ImGuiPtrOrIndex_ImGuiPtrOrIndex_Ptr(ptr: Pointer): PImGuiPtrOrIndex; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiPtrOrIndex_ImGuiPtrOrIndex_Ptr';

procedure ImGuiPtrOrIndex_destroy(self: PImGuiPtrOrIndex); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiPtrOrIndex_destroy';

function ImGuiPtrOrIndex_ImGuiPtrOrIndex_Int(index: Integer): PImGuiPtrOrIndex; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiPtrOrIndex_ImGuiPtrOrIndex_Int';

function ImGuiPopupData_ImGuiPopupData(): PImGuiPopupData; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiPopupData_ImGuiPopupData';

procedure ImGuiPopupData_destroy(self: PImGuiPopupData); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiPopupData_destroy';

function ImGuiInputEvent_ImGuiInputEvent(): PImGuiInputEvent; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiInputEvent_ImGuiInputEvent';

procedure ImGuiInputEvent_destroy(self: PImGuiInputEvent); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiInputEvent_destroy';

function ImGuiKeyRoutingData_ImGuiKeyRoutingData(): PImGuiKeyRoutingData; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiKeyRoutingData_ImGuiKeyRoutingData';

procedure ImGuiKeyRoutingData_destroy(self: PImGuiKeyRoutingData); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiKeyRoutingData_destroy';

function ImGuiKeyRoutingTable_ImGuiKeyRoutingTable(): PImGuiKeyRoutingTable; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiKeyRoutingTable_ImGuiKeyRoutingTable';

procedure ImGuiKeyRoutingTable_destroy(self: PImGuiKeyRoutingTable); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiKeyRoutingTable_destroy';

procedure ImGuiKeyRoutingTable_Clear(self: PImGuiKeyRoutingTable); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiKeyRoutingTable_Clear';

function ImGuiKeyOwnerData_ImGuiKeyOwnerData(): PImGuiKeyOwnerData; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiKeyOwnerData_ImGuiKeyOwnerData';

procedure ImGuiKeyOwnerData_destroy(self: PImGuiKeyOwnerData); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiKeyOwnerData_destroy';

function ImGuiListClipperRange_FromIndices(min: Integer; max: Integer): ImGuiListClipperRange; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiListClipperRange_FromIndices';

function ImGuiListClipperRange_FromPositions(y1: Single; y2: Single; off_min: Integer; off_max: Integer): ImGuiListClipperRange; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiListClipperRange_FromPositions';

function ImGuiListClipperData_ImGuiListClipperData(): PImGuiListClipperData; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiListClipperData_ImGuiListClipperData';

procedure ImGuiListClipperData_destroy(self: PImGuiListClipperData); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiListClipperData_destroy';

procedure ImGuiListClipperData_Reset(self: PImGuiListClipperData; clipper: PImGuiListClipper); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiListClipperData_Reset';

function ImGuiNavItemData_ImGuiNavItemData(): PImGuiNavItemData; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiNavItemData_ImGuiNavItemData';

procedure ImGuiNavItemData_destroy(self: PImGuiNavItemData); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiNavItemData_destroy';

procedure ImGuiNavItemData_Clear(self: PImGuiNavItemData); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiNavItemData_Clear';

function ImGuiTypingSelectState_ImGuiTypingSelectState(): PImGuiTypingSelectState; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTypingSelectState_ImGuiTypingSelectState';

procedure ImGuiTypingSelectState_destroy(self: PImGuiTypingSelectState); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTypingSelectState_destroy';

procedure ImGuiTypingSelectState_Clear(self: PImGuiTypingSelectState); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTypingSelectState_Clear';

function ImGuiOldColumnData_ImGuiOldColumnData(): PImGuiOldColumnData; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiOldColumnData_ImGuiOldColumnData';

procedure ImGuiOldColumnData_destroy(self: PImGuiOldColumnData); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiOldColumnData_destroy';

function ImGuiOldColumns_ImGuiOldColumns(): PImGuiOldColumns; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiOldColumns_ImGuiOldColumns';

procedure ImGuiOldColumns_destroy(self: PImGuiOldColumns); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiOldColumns_destroy';

function ImGuiBoxSelectState_ImGuiBoxSelectState(): PImGuiBoxSelectState; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiBoxSelectState_ImGuiBoxSelectState';

procedure ImGuiBoxSelectState_destroy(self: PImGuiBoxSelectState); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiBoxSelectState_destroy';

function ImGuiMultiSelectTempData_ImGuiMultiSelectTempData(): PImGuiMultiSelectTempData; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiMultiSelectTempData_ImGuiMultiSelectTempData';

procedure ImGuiMultiSelectTempData_destroy(self: PImGuiMultiSelectTempData); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiMultiSelectTempData_destroy';

procedure ImGuiMultiSelectTempData_Clear(self: PImGuiMultiSelectTempData); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiMultiSelectTempData_Clear';

procedure ImGuiMultiSelectTempData_ClearIO(self: PImGuiMultiSelectTempData); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiMultiSelectTempData_ClearIO';

function ImGuiMultiSelectState_ImGuiMultiSelectState(): PImGuiMultiSelectState; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiMultiSelectState_ImGuiMultiSelectState';

procedure ImGuiMultiSelectState_destroy(self: PImGuiMultiSelectState); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiMultiSelectState_destroy';

function ImGuiDockNode_ImGuiDockNode(id: ImGuiID): PImGuiDockNode; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiDockNode_ImGuiDockNode';

procedure ImGuiDockNode_destroy(self: PImGuiDockNode); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiDockNode_destroy';

function ImGuiDockNode_IsRootNode(self: PImGuiDockNode): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiDockNode_IsRootNode';

function ImGuiDockNode_IsDockSpace(self: PImGuiDockNode): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiDockNode_IsDockSpace';

function ImGuiDockNode_IsFloatingNode(self: PImGuiDockNode): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiDockNode_IsFloatingNode';

function ImGuiDockNode_IsCentralNode(self: PImGuiDockNode): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiDockNode_IsCentralNode';

function ImGuiDockNode_IsHiddenTabBar(self: PImGuiDockNode): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiDockNode_IsHiddenTabBar';

function ImGuiDockNode_IsNoTabBar(self: PImGuiDockNode): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiDockNode_IsNoTabBar';

function ImGuiDockNode_IsSplitNode(self: PImGuiDockNode): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiDockNode_IsSplitNode';

function ImGuiDockNode_IsLeafNode(self: PImGuiDockNode): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiDockNode_IsLeafNode';

function ImGuiDockNode_IsEmpty(self: PImGuiDockNode): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiDockNode_IsEmpty';

procedure ImGuiDockNode_Rect(pOut: PImRect; self: PImGuiDockNode); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiDockNode_Rect';

procedure ImGuiDockNode_SetLocalFlags(self: PImGuiDockNode; flags: ImGuiDockNodeFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiDockNode_SetLocalFlags';

procedure ImGuiDockNode_UpdateMergedFlags(self: PImGuiDockNode); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiDockNode_UpdateMergedFlags';

function ImGuiDockContext_ImGuiDockContext(): PImGuiDockContext; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiDockContext_ImGuiDockContext';

procedure ImGuiDockContext_destroy(self: PImGuiDockContext); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiDockContext_destroy';

function ImGuiViewportP_ImGuiViewportP(): PImGuiViewportP; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiViewportP_ImGuiViewportP';

procedure ImGuiViewportP_destroy(self: PImGuiViewportP); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiViewportP_destroy';

procedure ImGuiViewportP_ClearRequestFlags(self: PImGuiViewportP); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiViewportP_ClearRequestFlags';

procedure ImGuiViewportP_CalcWorkRectPos(pOut: PImVec2; self: PImGuiViewportP; off_min: ImVec2); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiViewportP_CalcWorkRectPos';

procedure ImGuiViewportP_CalcWorkRectSize(pOut: PImVec2; self: PImGuiViewportP; off_min: ImVec2; off_max: ImVec2); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiViewportP_CalcWorkRectSize';

procedure ImGuiViewportP_UpdateWorkRect(self: PImGuiViewportP); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiViewportP_UpdateWorkRect';

procedure ImGuiViewportP_GetMainRect(pOut: PImRect; self: PImGuiViewportP); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiViewportP_GetMainRect';

procedure ImGuiViewportP_GetWorkRect(pOut: PImRect; self: PImGuiViewportP); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiViewportP_GetWorkRect';

procedure ImGuiViewportP_GetBuildWorkRect(pOut: PImRect; self: PImGuiViewportP); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiViewportP_GetBuildWorkRect';

function ImGuiWindowSettings_ImGuiWindowSettings(): PImGuiWindowSettings; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiWindowSettings_ImGuiWindowSettings';

procedure ImGuiWindowSettings_destroy(self: PImGuiWindowSettings); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiWindowSettings_destroy';

function ImGuiWindowSettings_GetName(self: PImGuiWindowSettings): PAnsiChar; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiWindowSettings_GetName';

function ImGuiSettingsHandler_ImGuiSettingsHandler(): PImGuiSettingsHandler; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiSettingsHandler_ImGuiSettingsHandler';

procedure ImGuiSettingsHandler_destroy(self: PImGuiSettingsHandler); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiSettingsHandler_destroy';

function ImGuiDebugAllocInfo_ImGuiDebugAllocInfo(): PImGuiDebugAllocInfo; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiDebugAllocInfo_ImGuiDebugAllocInfo';

procedure ImGuiDebugAllocInfo_destroy(self: PImGuiDebugAllocInfo); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiDebugAllocInfo_destroy';

function ImGuiStackLevelInfo_ImGuiStackLevelInfo(): PImGuiStackLevelInfo; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiStackLevelInfo_ImGuiStackLevelInfo';

procedure ImGuiStackLevelInfo_destroy(self: PImGuiStackLevelInfo); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiStackLevelInfo_destroy';

function ImGuiIDStackTool_ImGuiIDStackTool(): PImGuiIDStackTool; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiIDStackTool_ImGuiIDStackTool';

procedure ImGuiIDStackTool_destroy(self: PImGuiIDStackTool); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiIDStackTool_destroy';

function ImGuiContextHook_ImGuiContextHook(): PImGuiContextHook; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiContextHook_ImGuiContextHook';

procedure ImGuiContextHook_destroy(self: PImGuiContextHook); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiContextHook_destroy';

function ImGuiContext_ImGuiContext(shared_font_atlas: PImFontAtlas): PImGuiContext; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiContext_ImGuiContext';

procedure ImGuiContext_destroy(self: PImGuiContext); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiContext_destroy';

function ImGuiWindow_ImGuiWindow(context: PImGuiContext; const name: PAnsiChar): PImGuiWindow; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiWindow_ImGuiWindow';

procedure ImGuiWindow_destroy(self: PImGuiWindow); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiWindow_destroy';

function ImGuiWindow_GetID_Str(self: PImGuiWindow; const str: PAnsiChar; const str_end: PAnsiChar): ImGuiID; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiWindow_GetID_Str';

function ImGuiWindow_GetID_Ptr(self: PImGuiWindow; const ptr: Pointer): ImGuiID; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiWindow_GetID_Ptr';

function ImGuiWindow_GetID_Int(self: PImGuiWindow; n: Integer): ImGuiID; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiWindow_GetID_Int';

function ImGuiWindow_GetIDFromRectangle(self: PImGuiWindow; r_abs: ImRect): ImGuiID; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiWindow_GetIDFromRectangle';

procedure ImGuiWindow_Rect(pOut: PImRect; self: PImGuiWindow); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiWindow_Rect';

function ImGuiWindow_CalcFontSize(self: PImGuiWindow): Single; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiWindow_CalcFontSize';

procedure ImGuiWindow_TitleBarRect(pOut: PImRect; self: PImGuiWindow); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiWindow_TitleBarRect';

procedure ImGuiWindow_MenuBarRect(pOut: PImRect; self: PImGuiWindow); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiWindow_MenuBarRect';

function ImGuiTabItem_ImGuiTabItem(): PImGuiTabItem; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTabItem_ImGuiTabItem';

procedure ImGuiTabItem_destroy(self: PImGuiTabItem); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTabItem_destroy';

function ImGuiTabBar_ImGuiTabBar(): PImGuiTabBar; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTabBar_ImGuiTabBar';

procedure ImGuiTabBar_destroy(self: PImGuiTabBar); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTabBar_destroy';

function ImGuiTableColumn_ImGuiTableColumn(): PImGuiTableColumn; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTableColumn_ImGuiTableColumn';

procedure ImGuiTableColumn_destroy(self: PImGuiTableColumn); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTableColumn_destroy';

function ImGuiTableInstanceData_ImGuiTableInstanceData(): PImGuiTableInstanceData; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTableInstanceData_ImGuiTableInstanceData';

procedure ImGuiTableInstanceData_destroy(self: PImGuiTableInstanceData); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTableInstanceData_destroy';

function ImGuiTable_ImGuiTable(): PImGuiTable; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTable_ImGuiTable';

procedure ImGuiTable_destroy(self: PImGuiTable); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTable_destroy';

function ImGuiTableTempData_ImGuiTableTempData(): PImGuiTableTempData; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTableTempData_ImGuiTableTempData';

procedure ImGuiTableTempData_destroy(self: PImGuiTableTempData); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTableTempData_destroy';

function ImGuiTableColumnSettings_ImGuiTableColumnSettings(): PImGuiTableColumnSettings; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTableColumnSettings_ImGuiTableColumnSettings';

procedure ImGuiTableColumnSettings_destroy(self: PImGuiTableColumnSettings); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTableColumnSettings_destroy';

function ImGuiTableSettings_ImGuiTableSettings(): PImGuiTableSettings; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTableSettings_ImGuiTableSettings';

procedure ImGuiTableSettings_destroy(self: PImGuiTableSettings); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTableSettings_destroy';

function ImGuiTableSettings_GetColumnSettings(self: PImGuiTableSettings): PImGuiTableColumnSettings; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTableSettings_GetColumnSettings';

function igGetCurrentWindowRead(): PImGuiWindow; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetCurrentWindowRead';

function igGetCurrentWindow(): PImGuiWindow; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetCurrentWindow';

function igFindWindowByID(id: ImGuiID): PImGuiWindow; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igFindWindowByID';

function igFindWindowByName(const name: PAnsiChar): PImGuiWindow; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igFindWindowByName';

procedure igUpdateWindowParentAndRootLinks(window: PImGuiWindow; flags: ImGuiWindowFlags; parent_window: PImGuiWindow); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igUpdateWindowParentAndRootLinks';

procedure igUpdateWindowSkipRefresh(window: PImGuiWindow); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igUpdateWindowSkipRefresh';

procedure igCalcWindowNextAutoFitSize(pOut: PImVec2; window: PImGuiWindow); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igCalcWindowNextAutoFitSize';

function igIsWindowChildOf(window: PImGuiWindow; potential_parent: PImGuiWindow; popup_hierarchy: Boolean; dock_hierarchy: Boolean): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsWindowChildOf';

function igIsWindowWithinBeginStackOf(window: PImGuiWindow; potential_parent: PImGuiWindow): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsWindowWithinBeginStackOf';

function igIsWindowAbove(potential_above: PImGuiWindow; potential_below: PImGuiWindow): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsWindowAbove';

function igIsWindowNavFocusable(window: PImGuiWindow): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsWindowNavFocusable';

procedure igSetWindowPos_WindowPtr(window: PImGuiWindow; pos: ImVec2; cond: ImGuiCond); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetWindowPos_WindowPtr';

procedure igSetWindowSize_WindowPtr(window: PImGuiWindow; size: ImVec2; cond: ImGuiCond); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetWindowSize_WindowPtr';

procedure igSetWindowCollapsed_WindowPtr(window: PImGuiWindow; collapsed: Boolean; cond: ImGuiCond); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetWindowCollapsed_WindowPtr';

procedure igSetWindowHitTestHole(window: PImGuiWindow; pos: ImVec2; size: ImVec2); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetWindowHitTestHole';

procedure igSetWindowHiddenAndSkipItemsForCurrentFrame(window: PImGuiWindow); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetWindowHiddenAndSkipItemsForCurrentFrame';

procedure igSetWindowParentWindowForFocusRoute(window: PImGuiWindow; parent_window: PImGuiWindow); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetWindowParentWindowForFocusRoute';

procedure igWindowRectAbsToRel(pOut: PImRect; window: PImGuiWindow; r: ImRect); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igWindowRectAbsToRel';

procedure igWindowRectRelToAbs(pOut: PImRect; window: PImGuiWindow; r: ImRect); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igWindowRectRelToAbs';

procedure igWindowPosRelToAbs(pOut: PImVec2; window: PImGuiWindow; p: ImVec2); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igWindowPosRelToAbs';

procedure igWindowPosAbsToRel(pOut: PImVec2; window: PImGuiWindow; p: ImVec2); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igWindowPosAbsToRel';

procedure igFocusWindow(window: PImGuiWindow; flags: ImGuiFocusRequestFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igFocusWindow';

procedure igFocusTopMostWindowUnderOne(under_this_window: PImGuiWindow; ignore_window: PImGuiWindow; filter_viewport: PImGuiViewport; flags: ImGuiFocusRequestFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igFocusTopMostWindowUnderOne';

procedure igBringWindowToFocusFront(window: PImGuiWindow); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBringWindowToFocusFront';

procedure igBringWindowToDisplayFront(window: PImGuiWindow); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBringWindowToDisplayFront';

procedure igBringWindowToDisplayBack(window: PImGuiWindow); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBringWindowToDisplayBack';

procedure igBringWindowToDisplayBehind(window: PImGuiWindow; above_window: PImGuiWindow); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBringWindowToDisplayBehind';

function igFindWindowDisplayIndex(window: PImGuiWindow): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igFindWindowDisplayIndex';

function igFindBottomMostVisibleWindowWithinBeginStack(window: PImGuiWindow): PImGuiWindow; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igFindBottomMostVisibleWindowWithinBeginStack';

procedure igSetNextWindowRefreshPolicy(flags: ImGuiWindowRefreshFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetNextWindowRefreshPolicy';

procedure igSetCurrentFont(font: PImFont); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetCurrentFont';

function igGetDefaultFont(): PImFont; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetDefaultFont';

function igGetForegroundDrawList_WindowPtr(window: PImGuiWindow): PImDrawList; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetForegroundDrawList_WindowPtr';

procedure igAddDrawListToDrawDataEx(draw_data: PImDrawData; out_list: PImVector_ImDrawListPtr; draw_list: PImDrawList); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igAddDrawListToDrawDataEx';

procedure igInitialize(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igInitialize';

procedure igShutdown(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igShutdown';

procedure igUpdateInputEvents(trickle_fast_inputs: Boolean); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igUpdateInputEvents';

procedure igUpdateHoveredWindowAndCaptureFlags(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igUpdateHoveredWindowAndCaptureFlags';

procedure igFindHoveredWindowEx(pos: ImVec2; find_first_and_in_any_viewport: Boolean; out_hovered_window: PPImGuiWindow; out_hovered_window_under_moving_window: PPImGuiWindow); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igFindHoveredWindowEx';

procedure igStartMouseMovingWindow(window: PImGuiWindow); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igStartMouseMovingWindow';

procedure igStartMouseMovingWindowOrNode(window: PImGuiWindow; node: PImGuiDockNode; undock: Boolean); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igStartMouseMovingWindowOrNode';

procedure igUpdateMouseMovingWindowNewFrame(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igUpdateMouseMovingWindowNewFrame';

procedure igUpdateMouseMovingWindowEndFrame(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igUpdateMouseMovingWindowEndFrame';

function igAddContextHook(context: PImGuiContext; const hook: PImGuiContextHook): ImGuiID; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igAddContextHook';

procedure igRemoveContextHook(context: PImGuiContext; hook_to_remove: ImGuiID); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igRemoveContextHook';

procedure igCallContextHooks(context: PImGuiContext; type_: ImGuiContextHookType); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igCallContextHooks';

procedure igTranslateWindowsInViewport(viewport: PImGuiViewportP; old_pos: ImVec2; new_pos: ImVec2); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTranslateWindowsInViewport';

procedure igScaleWindowsInViewport(viewport: PImGuiViewportP; scale: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igScaleWindowsInViewport';

procedure igDestroyPlatformWindow(viewport: PImGuiViewportP); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDestroyPlatformWindow';

procedure igSetWindowViewport(window: PImGuiWindow; viewport: PImGuiViewportP); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetWindowViewport';

procedure igSetCurrentViewport(window: PImGuiWindow; viewport: PImGuiViewportP); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetCurrentViewport';

function igGetViewportPlatformMonitor(viewport: PImGuiViewport): PImGuiPlatformMonitor; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetViewportPlatformMonitor';

function igFindHoveredViewportFromPlatformWindowStack(mouse_platform_pos: ImVec2): PImGuiViewportP; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igFindHoveredViewportFromPlatformWindowStack';

procedure igMarkIniSettingsDirty_Nil(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igMarkIniSettingsDirty_Nil';

procedure igMarkIniSettingsDirty_WindowPtr(window: PImGuiWindow); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igMarkIniSettingsDirty_WindowPtr';

procedure igClearIniSettings(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igClearIniSettings';

procedure igAddSettingsHandler(const handler: PImGuiSettingsHandler); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igAddSettingsHandler';

procedure igRemoveSettingsHandler(const type_name: PAnsiChar); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igRemoveSettingsHandler';

function igFindSettingsHandler(const type_name: PAnsiChar): PImGuiSettingsHandler; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igFindSettingsHandler';

function igCreateNewWindowSettings(const name: PAnsiChar): PImGuiWindowSettings; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igCreateNewWindowSettings';

function igFindWindowSettingsByID(id: ImGuiID): PImGuiWindowSettings; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igFindWindowSettingsByID';

function igFindWindowSettingsByWindow(window: PImGuiWindow): PImGuiWindowSettings; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igFindWindowSettingsByWindow';

procedure igClearWindowSettings(const name: PAnsiChar); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igClearWindowSettings';

procedure igLocalizeRegisterEntries(const entries: PImGuiLocEntry; count: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igLocalizeRegisterEntries';

function igLocalizeGetMsg(key: ImGuiLocKey): PAnsiChar; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igLocalizeGetMsg';

procedure igSetScrollX_WindowPtr(window: PImGuiWindow; scroll_x: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetScrollX_WindowPtr';

procedure igSetScrollY_WindowPtr(window: PImGuiWindow; scroll_y: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetScrollY_WindowPtr';

procedure igSetScrollFromPosX_WindowPtr(window: PImGuiWindow; local_x: Single; center_x_ratio: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetScrollFromPosX_WindowPtr';

procedure igSetScrollFromPosY_WindowPtr(window: PImGuiWindow; local_y: Single; center_y_ratio: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetScrollFromPosY_WindowPtr';

procedure igScrollToItem(flags: ImGuiScrollFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igScrollToItem';

procedure igScrollToRect(window: PImGuiWindow; rect: ImRect; flags: ImGuiScrollFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igScrollToRect';

procedure igScrollToRectEx(pOut: PImVec2; window: PImGuiWindow; rect: ImRect; flags: ImGuiScrollFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igScrollToRectEx';

procedure igScrollToBringRectIntoView(window: PImGuiWindow; rect: ImRect); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igScrollToBringRectIntoView';

function igGetItemStatusFlags(): ImGuiItemStatusFlags; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetItemStatusFlags';

function igGetItemFlags(): ImGuiItemFlags; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetItemFlags';

function igGetActiveID(): ImGuiID; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetActiveID';

function igGetFocusID(): ImGuiID; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetFocusID';

procedure igSetActiveID(id: ImGuiID; window: PImGuiWindow); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetActiveID';

procedure igSetFocusID(id: ImGuiID; window: PImGuiWindow); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetFocusID';

procedure igClearActiveID(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igClearActiveID';

function igGetHoveredID(): ImGuiID; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetHoveredID';

procedure igSetHoveredID(id: ImGuiID); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetHoveredID';

procedure igKeepAliveID(id: ImGuiID); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igKeepAliveID';

procedure igMarkItemEdited(id: ImGuiID); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igMarkItemEdited';

procedure igPushOverrideID(id: ImGuiID); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPushOverrideID';

function igGetIDWithSeed_Str(const str_id_begin: PAnsiChar; const str_id_end: PAnsiChar; seed: ImGuiID): ImGuiID; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetIDWithSeed_Str';

function igGetIDWithSeed_Int(n: Integer; seed: ImGuiID): ImGuiID; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetIDWithSeed_Int';

procedure igItemSize_Vec2(size: ImVec2; text_baseline_y: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igItemSize_Vec2';

procedure igItemSize_Rect(bb: ImRect; text_baseline_y: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igItemSize_Rect';

function igItemAdd(bb: ImRect; id: ImGuiID; const nav_bb: PImRect; extra_flags: ImGuiItemFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igItemAdd';

function igItemHoverable(bb: ImRect; id: ImGuiID; item_flags: ImGuiItemFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igItemHoverable';

function igIsWindowContentHoverable(window: PImGuiWindow; flags: ImGuiHoveredFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsWindowContentHoverable';

function igIsClippedEx(bb: ImRect; id: ImGuiID): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsClippedEx';

procedure igSetLastItemData(item_id: ImGuiID; in_flags: ImGuiItemFlags; status_flags: ImGuiItemStatusFlags; item_rect: ImRect); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetLastItemData';

procedure igCalcItemSize(pOut: PImVec2; size: ImVec2; default_w: Single; default_h: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igCalcItemSize';

function igCalcWrapWidthForPos(pos: ImVec2; wrap_pos_x: Single): Single; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igCalcWrapWidthForPos';

procedure igPushMultiItemsWidths(components: Integer; width_full: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPushMultiItemsWidths';

procedure igShrinkWidths(items: PImGuiShrinkWidthItem; count: Integer; width_excess: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igShrinkWidths';

function igGetStyleVarInfo(idx: ImGuiStyleVar): PImGuiDataVarInfo; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetStyleVarInfo';

procedure igBeginDisabledOverrideReenable(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginDisabledOverrideReenable';

procedure igEndDisabledOverrideReenable(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igEndDisabledOverrideReenable';

procedure igLogBegin(type_: ImGuiLogType; auto_open_depth: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igLogBegin';

procedure igLogToBuffer(auto_open_depth: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igLogToBuffer';

procedure igLogRenderedText(const ref_pos: PImVec2; const text: PAnsiChar; const text_end: PAnsiChar); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igLogRenderedText';

procedure igLogSetNextTextDecoration(const prefix: PAnsiChar; const suffix: PAnsiChar); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igLogSetNextTextDecoration';

function igBeginChildEx(const name: PAnsiChar; id: ImGuiID; size_arg: ImVec2; child_flags: ImGuiChildFlags; window_flags: ImGuiWindowFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginChildEx';

function igBeginPopupEx(id: ImGuiID; extra_window_flags: ImGuiWindowFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginPopupEx';

procedure igOpenPopupEx(id: ImGuiID; popup_flags: ImGuiPopupFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igOpenPopupEx';

procedure igClosePopupToLevel(remaining: Integer; restore_focus_to_window_under_popup: Boolean); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igClosePopupToLevel';

procedure igClosePopupsOverWindow(ref_window: PImGuiWindow; restore_focus_to_window_under_popup: Boolean); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igClosePopupsOverWindow';

procedure igClosePopupsExceptModals(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igClosePopupsExceptModals';

function igIsPopupOpen_ID(id: ImGuiID; popup_flags: ImGuiPopupFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsPopupOpen_ID';

procedure igGetPopupAllowedExtentRect(pOut: PImRect; window: PImGuiWindow); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetPopupAllowedExtentRect';

function igGetTopMostPopupModal(): PImGuiWindow; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetTopMostPopupModal';

function igGetTopMostAndVisiblePopupModal(): PImGuiWindow; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetTopMostAndVisiblePopupModal';

function igFindBlockingModal(window: PImGuiWindow): PImGuiWindow; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igFindBlockingModal';

procedure igFindBestWindowPosForPopup(pOut: PImVec2; window: PImGuiWindow); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igFindBestWindowPosForPopup';

procedure igFindBestWindowPosForPopupEx(pOut: PImVec2; ref_pos: ImVec2; size: ImVec2; last_dir: PImGuiDir; r_outer: ImRect; r_avoid: ImRect; policy: ImGuiPopupPositionPolicy); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igFindBestWindowPosForPopupEx';

function igBeginTooltipEx(tooltip_flags: ImGuiTooltipFlags; extra_window_flags: ImGuiWindowFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginTooltipEx';

function igBeginTooltipHidden(): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginTooltipHidden';

function igBeginViewportSideBar(const name: PAnsiChar; viewport: PImGuiViewport; dir: ImGuiDir; size: Single; window_flags: ImGuiWindowFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginViewportSideBar';

function igBeginMenuEx(const label_: PAnsiChar; const icon: PAnsiChar; enabled: Boolean): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginMenuEx';

function igMenuItemEx(const label_: PAnsiChar; const icon: PAnsiChar; const shortcut: PAnsiChar; selected: Boolean; enabled: Boolean): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igMenuItemEx';

function igBeginComboPopup(popup_id: ImGuiID; bb: ImRect; flags: ImGuiComboFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginComboPopup';

function igBeginComboPreview(): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginComboPreview';

procedure igEndComboPreview(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igEndComboPreview';

procedure igNavInitWindow(window: PImGuiWindow; force_reinit: Boolean); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igNavInitWindow';

procedure igNavInitRequestApplyResult(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igNavInitRequestApplyResult';

function igNavMoveRequestButNoResultYet(): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igNavMoveRequestButNoResultYet';

procedure igNavMoveRequestSubmit(move_dir: ImGuiDir; clip_dir: ImGuiDir; move_flags: ImGuiNavMoveFlags; scroll_flags: ImGuiScrollFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igNavMoveRequestSubmit';

procedure igNavMoveRequestForward(move_dir: ImGuiDir; clip_dir: ImGuiDir; move_flags: ImGuiNavMoveFlags; scroll_flags: ImGuiScrollFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igNavMoveRequestForward';

procedure igNavMoveRequestResolveWithLastItem(result: PImGuiNavItemData); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igNavMoveRequestResolveWithLastItem';

procedure igNavMoveRequestResolveWithPastTreeNode(result: PImGuiNavItemData; tree_node_data: PImGuiTreeNodeStackData); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igNavMoveRequestResolveWithPastTreeNode';

procedure igNavMoveRequestCancel(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igNavMoveRequestCancel';

procedure igNavMoveRequestApplyResult(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igNavMoveRequestApplyResult';

procedure igNavMoveRequestTryWrapping(window: PImGuiWindow; move_flags: ImGuiNavMoveFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igNavMoveRequestTryWrapping';

procedure igNavHighlightActivated(id: ImGuiID); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igNavHighlightActivated';

procedure igNavClearPreferredPosForAxis(axis: ImGuiAxis); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igNavClearPreferredPosForAxis';

procedure igNavRestoreHighlightAfterMove(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igNavRestoreHighlightAfterMove';

procedure igNavUpdateCurrentWindowIsScrollPushableX(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igNavUpdateCurrentWindowIsScrollPushableX';

procedure igSetNavWindow(window: PImGuiWindow); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetNavWindow';

procedure igSetNavID(id: ImGuiID; nav_layer: ImGuiNavLayer; focus_scope_id: ImGuiID; rect_rel: ImRect); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetNavID';

procedure igSetNavFocusScope(focus_scope_id: ImGuiID); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetNavFocusScope';

procedure igFocusItem(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igFocusItem';

procedure igActivateItemByID(id: ImGuiID); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igActivateItemByID';

function igIsNamedKey(key: ImGuiKey): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsNamedKey';

function igIsNamedKeyOrMod(key: ImGuiKey): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsNamedKeyOrMod';

function igIsLegacyKey(key: ImGuiKey): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsLegacyKey';

function igIsKeyboardKey(key: ImGuiKey): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsKeyboardKey';

function igIsGamepadKey(key: ImGuiKey): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsGamepadKey';

function igIsMouseKey(key: ImGuiKey): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsMouseKey';

function igIsAliasKey(key: ImGuiKey): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsAliasKey';

function igIsModKey(key: ImGuiKey): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsModKey';

function igFixupKeyChord(key_chord: ImGuiKeyChord): ImGuiKeyChord; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igFixupKeyChord';

function igConvertSingleModFlagToKey(key: ImGuiKey): ImGuiKey; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igConvertSingleModFlagToKey';

function igGetKeyData_ContextPtr(ctx: PImGuiContext; key: ImGuiKey): PImGuiKeyData; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetKeyData_ContextPtr';

function igGetKeyData_Key(key: ImGuiKey): PImGuiKeyData; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetKeyData_Key';

function igGetKeyChordName(key_chord: ImGuiKeyChord): PAnsiChar; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetKeyChordName';

function igMouseButtonToKey(button: ImGuiMouseButton): ImGuiKey; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igMouseButtonToKey';

function igIsMouseDragPastThreshold(button: ImGuiMouseButton; lock_threshold: Single): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsMouseDragPastThreshold';

procedure igGetKeyMagnitude2d(pOut: PImVec2; key_left: ImGuiKey; key_right: ImGuiKey; key_up: ImGuiKey; key_down: ImGuiKey); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetKeyMagnitude2d';

function igGetNavTweakPressedAmount(axis: ImGuiAxis): Single; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetNavTweakPressedAmount';

function igCalcTypematicRepeatAmount(t0: Single; t1: Single; repeat_delay: Single; repeat_rate: Single): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igCalcTypematicRepeatAmount';

procedure igGetTypematicRepeatRate(flags: ImGuiInputFlags; repeat_delay: PSingle; repeat_rate: PSingle); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetTypematicRepeatRate';

procedure igTeleportMousePos(pos: ImVec2); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTeleportMousePos';

procedure igSetActiveIdUsingAllKeyboardKeys(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetActiveIdUsingAllKeyboardKeys';

function igIsActiveIdUsingNavDir(dir: ImGuiDir): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsActiveIdUsingNavDir';

function igGetKeyOwner(key: ImGuiKey): ImGuiID; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetKeyOwner';

procedure igSetKeyOwner(key: ImGuiKey; owner_id: ImGuiID; flags: ImGuiInputFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetKeyOwner';

procedure igSetKeyOwnersForKeyChord(key: ImGuiKeyChord; owner_id: ImGuiID; flags: ImGuiInputFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetKeyOwnersForKeyChord';

procedure igSetItemKeyOwner_InputFlags(key: ImGuiKey; flags: ImGuiInputFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetItemKeyOwner_InputFlags';

function igTestKeyOwner(key: ImGuiKey; owner_id: ImGuiID): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTestKeyOwner';

function igGetKeyOwnerData(ctx: PImGuiContext; key: ImGuiKey): PImGuiKeyOwnerData; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetKeyOwnerData';

function igIsKeyDown_ID(key: ImGuiKey; owner_id: ImGuiID): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsKeyDown_ID';

function igIsKeyPressed_InputFlags(key: ImGuiKey; flags: ImGuiInputFlags; owner_id: ImGuiID): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsKeyPressed_InputFlags';

function igIsKeyReleased_ID(key: ImGuiKey; owner_id: ImGuiID): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsKeyReleased_ID';

function igIsKeyChordPressed_InputFlags(key_chord: ImGuiKeyChord; flags: ImGuiInputFlags; owner_id: ImGuiID): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsKeyChordPressed_InputFlags';

function igIsMouseDown_ID(button: ImGuiMouseButton; owner_id: ImGuiID): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsMouseDown_ID';

function igIsMouseClicked_InputFlags(button: ImGuiMouseButton; flags: ImGuiInputFlags; owner_id: ImGuiID): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsMouseClicked_InputFlags';

function igIsMouseReleased_ID(button: ImGuiMouseButton; owner_id: ImGuiID): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsMouseReleased_ID';

function igIsMouseDoubleClicked_ID(button: ImGuiMouseButton; owner_id: ImGuiID): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsMouseDoubleClicked_ID';

function igShortcut_ID(key_chord: ImGuiKeyChord; flags: ImGuiInputFlags; owner_id: ImGuiID): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igShortcut_ID';

function igSetShortcutRouting(key_chord: ImGuiKeyChord; flags: ImGuiInputFlags; owner_id: ImGuiID): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetShortcutRouting';

function igTestShortcutRouting(key_chord: ImGuiKeyChord; owner_id: ImGuiID): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTestShortcutRouting';

function igGetShortcutRoutingData(key_chord: ImGuiKeyChord): PImGuiKeyRoutingData; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetShortcutRoutingData';

procedure igDockContextInitialize(ctx: PImGuiContext); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockContextInitialize';

procedure igDockContextShutdown(ctx: PImGuiContext); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockContextShutdown';

procedure igDockContextClearNodes(ctx: PImGuiContext; root_id: ImGuiID; clear_settings_refs: Boolean); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockContextClearNodes';

procedure igDockContextRebuildNodes(ctx: PImGuiContext); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockContextRebuildNodes';

procedure igDockContextNewFrameUpdateUndocking(ctx: PImGuiContext); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockContextNewFrameUpdateUndocking';

procedure igDockContextNewFrameUpdateDocking(ctx: PImGuiContext); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockContextNewFrameUpdateDocking';

procedure igDockContextEndFrame(ctx: PImGuiContext); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockContextEndFrame';

function igDockContextGenNodeID(ctx: PImGuiContext): ImGuiID; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockContextGenNodeID';

procedure igDockContextQueueDock(ctx: PImGuiContext; target: PImGuiWindow; target_node: PImGuiDockNode; payload: PImGuiWindow; split_dir: ImGuiDir; split_ratio: Single; split_outer: Boolean); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockContextQueueDock';

procedure igDockContextQueueUndockWindow(ctx: PImGuiContext; window: PImGuiWindow); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockContextQueueUndockWindow';

procedure igDockContextQueueUndockNode(ctx: PImGuiContext; node: PImGuiDockNode); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockContextQueueUndockNode';

procedure igDockContextProcessUndockWindow(ctx: PImGuiContext; window: PImGuiWindow; clear_persistent_docking_ref: Boolean); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockContextProcessUndockWindow';

procedure igDockContextProcessUndockNode(ctx: PImGuiContext; node: PImGuiDockNode); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockContextProcessUndockNode';

function igDockContextCalcDropPosForDocking(target: PImGuiWindow; target_node: PImGuiDockNode; payload_window: PImGuiWindow; payload_node: PImGuiDockNode; split_dir: ImGuiDir; split_outer: Boolean; out_pos: PImVec2): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockContextCalcDropPosForDocking';

function igDockContextFindNodeByID(ctx: PImGuiContext; id: ImGuiID): PImGuiDockNode; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockContextFindNodeByID';

procedure igDockNodeWindowMenuHandler_Default(ctx: PImGuiContext; node: PImGuiDockNode; tab_bar: PImGuiTabBar); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockNodeWindowMenuHandler_Default';

function igDockNodeBeginAmendTabBar(node: PImGuiDockNode): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockNodeBeginAmendTabBar';

procedure igDockNodeEndAmendTabBar(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockNodeEndAmendTabBar';

function igDockNodeGetRootNode(node: PImGuiDockNode): PImGuiDockNode; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockNodeGetRootNode';

function igDockNodeIsInHierarchyOf(node: PImGuiDockNode; parent: PImGuiDockNode): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockNodeIsInHierarchyOf';

function igDockNodeGetDepth(const node: PImGuiDockNode): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockNodeGetDepth';

function igDockNodeGetWindowMenuButtonId(const node: PImGuiDockNode): ImGuiID; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockNodeGetWindowMenuButtonId';

function igGetWindowDockNode(): PImGuiDockNode; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetWindowDockNode';

function igGetWindowAlwaysWantOwnTabBar(window: PImGuiWindow): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetWindowAlwaysWantOwnTabBar';

procedure igBeginDocked(window: PImGuiWindow; p_open: PBoolean); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginDocked';

procedure igBeginDockableDragDropSource(window: PImGuiWindow); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginDockableDragDropSource';

procedure igBeginDockableDragDropTarget(window: PImGuiWindow); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginDockableDragDropTarget';

procedure igSetWindowDock(window: PImGuiWindow; dock_id: ImGuiID; cond: ImGuiCond); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetWindowDock';

procedure igDockBuilderDockWindow(const window_name: PAnsiChar; node_id: ImGuiID); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockBuilderDockWindow';

function igDockBuilderGetNode(node_id: ImGuiID): PImGuiDockNode; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockBuilderGetNode';

function igDockBuilderGetCentralNode(node_id: ImGuiID): PImGuiDockNode; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockBuilderGetCentralNode';

function igDockBuilderAddNode(node_id: ImGuiID; flags: ImGuiDockNodeFlags): ImGuiID; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockBuilderAddNode';

procedure igDockBuilderRemoveNode(node_id: ImGuiID); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockBuilderRemoveNode';

procedure igDockBuilderRemoveNodeDockedWindows(node_id: ImGuiID; clear_settings_refs: Boolean); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockBuilderRemoveNodeDockedWindows';

procedure igDockBuilderRemoveNodeChildNodes(node_id: ImGuiID); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockBuilderRemoveNodeChildNodes';

procedure igDockBuilderSetNodePos(node_id: ImGuiID; pos: ImVec2); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockBuilderSetNodePos';

procedure igDockBuilderSetNodeSize(node_id: ImGuiID; size: ImVec2); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockBuilderSetNodeSize';

function igDockBuilderSplitNode(node_id: ImGuiID; split_dir: ImGuiDir; size_ratio_for_node_at_dir: Single; out_id_at_dir: PImGuiID; out_id_at_opposite_dir: PImGuiID): ImGuiID; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockBuilderSplitNode';

procedure igDockBuilderCopyDockSpace(src_dockspace_id: ImGuiID; dst_dockspace_id: ImGuiID; in_window_remap_pairs: PImVector_const_charPtr); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockBuilderCopyDockSpace';

procedure igDockBuilderCopyNode(src_node_id: ImGuiID; dst_node_id: ImGuiID; out_node_remap_pairs: PImVector_ImGuiID); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockBuilderCopyNode';

procedure igDockBuilderCopyWindowSettings(const src_name: PAnsiChar; const dst_name: PAnsiChar); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockBuilderCopyWindowSettings';

procedure igDockBuilderFinish(node_id: ImGuiID); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDockBuilderFinish';

procedure igPushFocusScope(id: ImGuiID); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPushFocusScope';

procedure igPopFocusScope(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPopFocusScope';

function igGetCurrentFocusScope(): ImGuiID; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetCurrentFocusScope';

function igIsDragDropActive(): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsDragDropActive';

function igBeginDragDropTargetCustom(bb: ImRect; id: ImGuiID): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginDragDropTargetCustom';

procedure igClearDragDrop(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igClearDragDrop';

function igIsDragDropPayloadBeingAccepted(): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsDragDropPayloadBeingAccepted';

procedure igRenderDragDropTargetRect(bb: ImRect; item_clip_rect: ImRect); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igRenderDragDropTargetRect';

function igGetTypingSelectRequest(flags: ImGuiTypingSelectFlags): PImGuiTypingSelectRequest; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetTypingSelectRequest';

type
  igTypingSelectFindMatch_get_item_name_func = function(p1: Pointer; p2: Integer): PAnsiChar; cdecl;

function igTypingSelectFindMatch(req: PImGuiTypingSelectRequest; items_count: Integer; get_item_name_func: igTypingSelectFindMatch_get_item_name_func; user_data: Pointer; nav_item_idx: Integer): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTypingSelectFindMatch';

type
  igTypingSelectFindNextSingleCharMatch_get_item_name_func = function(p1: Pointer; p2: Integer): PAnsiChar; cdecl;

function igTypingSelectFindNextSingleCharMatch(req: PImGuiTypingSelectRequest; items_count: Integer; get_item_name_func: igTypingSelectFindNextSingleCharMatch_get_item_name_func; user_data: Pointer; nav_item_idx: Integer): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTypingSelectFindNextSingleCharMatch';

type
  igTypingSelectFindBestLeadingMatch_get_item_name_func = function(p1: Pointer; p2: Integer): PAnsiChar; cdecl;

function igTypingSelectFindBestLeadingMatch(req: PImGuiTypingSelectRequest; items_count: Integer; get_item_name_func: igTypingSelectFindBestLeadingMatch_get_item_name_func; user_data: Pointer): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTypingSelectFindBestLeadingMatch';

function igBeginBoxSelect(scope_rect: ImRect; window: PImGuiWindow; box_select_id: ImGuiID; ms_flags: ImGuiMultiSelectFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginBoxSelect';

procedure igEndBoxSelect(scope_rect: ImRect; ms_flags: ImGuiMultiSelectFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igEndBoxSelect';

procedure igMultiSelectItemHeader(id: ImGuiID; p_selected: PBoolean; p_button_flags: PImGuiButtonFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igMultiSelectItemHeader';

procedure igMultiSelectItemFooter(id: ImGuiID; p_selected: PBoolean; p_pressed: PBoolean); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igMultiSelectItemFooter';

procedure igMultiSelectAddSetAll(ms: PImGuiMultiSelectTempData; selected: Boolean); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igMultiSelectAddSetAll';

procedure igMultiSelectAddSetRange(ms: PImGuiMultiSelectTempData; selected: Boolean; range_dir: Integer; first_item: ImGuiSelectionUserData; last_item: ImGuiSelectionUserData); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igMultiSelectAddSetRange';

function igGetBoxSelectState(id: ImGuiID): PImGuiBoxSelectState; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetBoxSelectState';

function igGetMultiSelectState(id: ImGuiID): PImGuiMultiSelectState; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetMultiSelectState';

procedure igSetWindowClipRectBeforeSetChannel(window: PImGuiWindow; clip_rect: ImRect); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetWindowClipRectBeforeSetChannel';

procedure igBeginColumns(const str_id: PAnsiChar; count: Integer; flags: ImGuiOldColumnFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginColumns';

procedure igEndColumns(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igEndColumns';

procedure igPushColumnClipRect(column_index: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPushColumnClipRect';

procedure igPushColumnsBackground(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPushColumnsBackground';

procedure igPopColumnsBackground(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPopColumnsBackground';

function igGetColumnsID(const str_id: PAnsiChar; count: Integer): ImGuiID; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetColumnsID';

function igFindOrCreateColumns(window: PImGuiWindow; id: ImGuiID): PImGuiOldColumns; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igFindOrCreateColumns';

function igGetColumnOffsetFromNorm(const columns: PImGuiOldColumns; offset_norm: Single): Single; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetColumnOffsetFromNorm';

function igGetColumnNormFromOffset(const columns: PImGuiOldColumns; offset: Single): Single; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetColumnNormFromOffset';

procedure igTableOpenContextMenu(column_n: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableOpenContextMenu';

procedure igTableSetColumnWidth(column_n: Integer; width: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableSetColumnWidth';

procedure igTableSetColumnSortDirection(column_n: Integer; sort_direction: ImGuiSortDirection; append_to_sort_specs: Boolean); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableSetColumnSortDirection';

function igTableGetHoveredRow(): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableGetHoveredRow';

function igTableGetHeaderRowHeight(): Single; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableGetHeaderRowHeight';

function igTableGetHeaderAngledMaxLabelWidth(): Single; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableGetHeaderAngledMaxLabelWidth';

procedure igTablePushBackgroundChannel(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTablePushBackgroundChannel';

procedure igTablePopBackgroundChannel(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTablePopBackgroundChannel';

procedure igTableAngledHeadersRowEx(row_id: ImGuiID; angle: Single; max_label_width: Single; const data: PImGuiTableHeaderData; data_count: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableAngledHeadersRowEx';

function igGetCurrentTable(): PImGuiTable; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetCurrentTable';

function igTableFindByID(id: ImGuiID): PImGuiTable; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableFindByID';

function igBeginTableEx(const name: PAnsiChar; id: ImGuiID; columns_count: Integer; flags: ImGuiTableFlags; outer_size: ImVec2; inner_width: Single): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginTableEx';

procedure igTableBeginInitMemory(table: PImGuiTable; columns_count: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableBeginInitMemory';

procedure igTableBeginApplyRequests(table: PImGuiTable); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableBeginApplyRequests';

procedure igTableSetupDrawChannels(table: PImGuiTable); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableSetupDrawChannels';

procedure igTableUpdateLayout(table: PImGuiTable); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableUpdateLayout';

procedure igTableUpdateBorders(table: PImGuiTable); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableUpdateBorders';

procedure igTableUpdateColumnsWeightFromWidth(table: PImGuiTable); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableUpdateColumnsWeightFromWidth';

procedure igTableDrawBorders(table: PImGuiTable); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableDrawBorders';

procedure igTableDrawDefaultContextMenu(table: PImGuiTable; flags_for_section_to_display: ImGuiTableFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableDrawDefaultContextMenu';

function igTableBeginContextMenuPopup(table: PImGuiTable): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableBeginContextMenuPopup';

procedure igTableMergeDrawChannels(table: PImGuiTable); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableMergeDrawChannels';

function igTableGetInstanceData(table: PImGuiTable; instance_no: Integer): PImGuiTableInstanceData; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableGetInstanceData';

function igTableGetInstanceID(table: PImGuiTable; instance_no: Integer): ImGuiID; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableGetInstanceID';

procedure igTableSortSpecsSanitize(table: PImGuiTable); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableSortSpecsSanitize';

procedure igTableSortSpecsBuild(table: PImGuiTable); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableSortSpecsBuild';

function igTableGetColumnNextSortDirection(column: PImGuiTableColumn): ImGuiSortDirection; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableGetColumnNextSortDirection';

procedure igTableFixColumnSortDirection(table: PImGuiTable; column: PImGuiTableColumn); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableFixColumnSortDirection';

function igTableGetColumnWidthAuto(table: PImGuiTable; column: PImGuiTableColumn): Single; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableGetColumnWidthAuto';

procedure igTableBeginRow(table: PImGuiTable); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableBeginRow';

procedure igTableEndRow(table: PImGuiTable); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableEndRow';

procedure igTableBeginCell(table: PImGuiTable; column_n: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableBeginCell';

procedure igTableEndCell(table: PImGuiTable); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableEndCell';

procedure igTableGetCellBgRect(pOut: PImRect; const table: PImGuiTable; column_n: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableGetCellBgRect';

function igTableGetColumnName_TablePtr(const table: PImGuiTable; column_n: Integer): PAnsiChar; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableGetColumnName_TablePtr';

function igTableGetColumnResizeID(table: PImGuiTable; column_n: Integer; instance_no: Integer): ImGuiID; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableGetColumnResizeID';

function igTableGetMaxColumnWidth(const table: PImGuiTable; column_n: Integer): Single; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableGetMaxColumnWidth';

procedure igTableSetColumnWidthAutoSingle(table: PImGuiTable; column_n: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableSetColumnWidthAutoSingle';

procedure igTableSetColumnWidthAutoAll(table: PImGuiTable); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableSetColumnWidthAutoAll';

procedure igTableRemove(table: PImGuiTable); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableRemove';

procedure igTableGcCompactTransientBuffers_TablePtr(table: PImGuiTable); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableGcCompactTransientBuffers_TablePtr';

procedure igTableGcCompactTransientBuffers_TableTempDataPtr(table: PImGuiTableTempData); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableGcCompactTransientBuffers_TableTempDataPtr';

procedure igTableGcCompactSettings(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableGcCompactSettings';

procedure igTableLoadSettings(table: PImGuiTable); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableLoadSettings';

procedure igTableSaveSettings(table: PImGuiTable); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableSaveSettings';

procedure igTableResetSettings(table: PImGuiTable); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableResetSettings';

function igTableGetBoundSettings(table: PImGuiTable): PImGuiTableSettings; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableGetBoundSettings';

procedure igTableSettingsAddSettingsHandler(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableSettingsAddSettingsHandler';

function igTableSettingsCreate(id: ImGuiID; columns_count: Integer): PImGuiTableSettings; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableSettingsCreate';

function igTableSettingsFindByID(id: ImGuiID): PImGuiTableSettings; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTableSettingsFindByID';

function igGetCurrentTabBar(): PImGuiTabBar; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetCurrentTabBar';

function igBeginTabBarEx(tab_bar: PImGuiTabBar; bb: ImRect; flags: ImGuiTabBarFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginTabBarEx';

function igTabBarFindTabByID(tab_bar: PImGuiTabBar; tab_id: ImGuiID): PImGuiTabItem; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTabBarFindTabByID';

function igTabBarFindTabByOrder(tab_bar: PImGuiTabBar; order: Integer): PImGuiTabItem; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTabBarFindTabByOrder';

function igTabBarFindMostRecentlySelectedTabForActiveWindow(tab_bar: PImGuiTabBar): PImGuiTabItem; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTabBarFindMostRecentlySelectedTabForActiveWindow';

function igTabBarGetCurrentTab(tab_bar: PImGuiTabBar): PImGuiTabItem; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTabBarGetCurrentTab';

function igTabBarGetTabOrder(tab_bar: PImGuiTabBar; tab: PImGuiTabItem): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTabBarGetTabOrder';

function igTabBarGetTabName(tab_bar: PImGuiTabBar; tab: PImGuiTabItem): PAnsiChar; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTabBarGetTabName';

procedure igTabBarAddTab(tab_bar: PImGuiTabBar; tab_flags: ImGuiTabItemFlags; window: PImGuiWindow); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTabBarAddTab';

procedure igTabBarRemoveTab(tab_bar: PImGuiTabBar; tab_id: ImGuiID); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTabBarRemoveTab';

procedure igTabBarCloseTab(tab_bar: PImGuiTabBar; tab: PImGuiTabItem); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTabBarCloseTab';

procedure igTabBarQueueFocus(tab_bar: PImGuiTabBar; tab: PImGuiTabItem); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTabBarQueueFocus';

procedure igTabBarQueueReorder(tab_bar: PImGuiTabBar; tab: PImGuiTabItem; offset: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTabBarQueueReorder';

procedure igTabBarQueueReorderFromMousePos(tab_bar: PImGuiTabBar; tab: PImGuiTabItem; mouse_pos: ImVec2); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTabBarQueueReorderFromMousePos';

function igTabBarProcessReorder(tab_bar: PImGuiTabBar): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTabBarProcessReorder';

function igTabItemEx(tab_bar: PImGuiTabBar; const label_: PAnsiChar; p_open: PBoolean; flags: ImGuiTabItemFlags; docked_window: PImGuiWindow): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTabItemEx';

procedure igTabItemCalcSize_Str(pOut: PImVec2; const label_: PAnsiChar; has_close_button_or_unsaved_marker: Boolean); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTabItemCalcSize_Str';

procedure igTabItemCalcSize_WindowPtr(pOut: PImVec2; window: PImGuiWindow); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTabItemCalcSize_WindowPtr';

procedure igTabItemBackground(draw_list: PImDrawList; bb: ImRect; flags: ImGuiTabItemFlags; col: ImU32); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTabItemBackground';

procedure igTabItemLabelAndCloseButton(draw_list: PImDrawList; bb: ImRect; flags: ImGuiTabItemFlags; frame_padding: ImVec2; const label_: PAnsiChar; tab_id: ImGuiID; close_button_id: ImGuiID; is_contents_visible: Boolean; out_just_closed: PBoolean; out_text_clipped: PBoolean); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTabItemLabelAndCloseButton';

procedure igRenderText(pos: ImVec2; const text: PAnsiChar; const text_end: PAnsiChar; hide_text_after_hash: Boolean); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igRenderText';

procedure igRenderTextWrapped(pos: ImVec2; const text: PAnsiChar; const text_end: PAnsiChar; wrap_width: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igRenderTextWrapped';

procedure igRenderTextClipped(pos_min: ImVec2; pos_max: ImVec2; const text: PAnsiChar; const text_end: PAnsiChar; const text_size_if_known: PImVec2; align: ImVec2; const clip_rect: PImRect); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igRenderTextClipped';

procedure igRenderTextClippedEx(draw_list: PImDrawList; pos_min: ImVec2; pos_max: ImVec2; const text: PAnsiChar; const text_end: PAnsiChar; const text_size_if_known: PImVec2; align: ImVec2; const clip_rect: PImRect); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igRenderTextClippedEx';

procedure igRenderTextEllipsis(draw_list: PImDrawList; pos_min: ImVec2; pos_max: ImVec2; clip_max_x: Single; ellipsis_max_x: Single; const text: PAnsiChar; const text_end: PAnsiChar; const text_size_if_known: PImVec2); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igRenderTextEllipsis';

procedure igRenderFrame(p_min: ImVec2; p_max: ImVec2; fill_col: ImU32; border: Boolean; rounding: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igRenderFrame';

procedure igRenderFrameBorder(p_min: ImVec2; p_max: ImVec2; rounding: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igRenderFrameBorder';

procedure igRenderColorRectWithAlphaCheckerboard(draw_list: PImDrawList; p_min: ImVec2; p_max: ImVec2; fill_col: ImU32; grid_step: Single; grid_off: ImVec2; rounding: Single; flags: ImDrawFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igRenderColorRectWithAlphaCheckerboard';

procedure igRenderNavHighlight(bb: ImRect; id: ImGuiID; flags: ImGuiNavHighlightFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igRenderNavHighlight';

function igFindRenderedTextEnd(const text: PAnsiChar; const text_end: PAnsiChar): PAnsiChar; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igFindRenderedTextEnd';

procedure igRenderMouseCursor(pos: ImVec2; scale: Single; mouse_cursor: ImGuiMouseCursor; col_fill: ImU32; col_border: ImU32; col_shadow: ImU32); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igRenderMouseCursor';

procedure igRenderArrow(draw_list: PImDrawList; pos: ImVec2; col: ImU32; dir: ImGuiDir; scale: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igRenderArrow';

procedure igRenderBullet(draw_list: PImDrawList; pos: ImVec2; col: ImU32); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igRenderBullet';

procedure igRenderCheckMark(draw_list: PImDrawList; pos: ImVec2; col: ImU32; sz: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igRenderCheckMark';

procedure igRenderArrowPointingAt(draw_list: PImDrawList; pos: ImVec2; half_sz: ImVec2; direction: ImGuiDir; col: ImU32); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igRenderArrowPointingAt';

procedure igRenderArrowDockMenu(draw_list: PImDrawList; p_min: ImVec2; sz: Single; col: ImU32); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igRenderArrowDockMenu';

procedure igRenderRectFilledRangeH(draw_list: PImDrawList; rect: ImRect; col: ImU32; x_start_norm: Single; x_end_norm: Single; rounding: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igRenderRectFilledRangeH';

procedure igRenderRectFilledWithHole(draw_list: PImDrawList; outer: ImRect; inner: ImRect; col: ImU32; rounding: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igRenderRectFilledWithHole';

function igCalcRoundingFlagsForRectInRect(r_in: ImRect; r_outer: ImRect; threshold: Single): ImDrawFlags; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igCalcRoundingFlagsForRectInRect';

procedure igTextEx(const text: PAnsiChar; const text_end: PAnsiChar; flags: ImGuiTextFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTextEx';

function igButtonEx(const label_: PAnsiChar; size_arg: ImVec2; flags: ImGuiButtonFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igButtonEx';

function igArrowButtonEx(const str_id: PAnsiChar; dir: ImGuiDir; size_arg: ImVec2; flags: ImGuiButtonFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igArrowButtonEx';

function igImageButtonEx(id: ImGuiID; texture_id: ImTextureID; image_size: ImVec2; uv0: ImVec2; uv1: ImVec2; bg_col: ImVec4; tint_col: ImVec4; flags: ImGuiButtonFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImageButtonEx';

procedure igSeparatorEx(flags: ImGuiSeparatorFlags; thickness: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSeparatorEx';

procedure igSeparatorTextEx(id: ImGuiID; const label_: PAnsiChar; const label_end: PAnsiChar; extra_width: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSeparatorTextEx';

function igCheckboxFlags_S64Ptr(const label_: PAnsiChar; flags: PImS64; flags_value: ImS64): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igCheckboxFlags_S64Ptr';

function igCheckboxFlags_U64Ptr(const label_: PAnsiChar; flags: PImU64; flags_value: ImU64): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igCheckboxFlags_U64Ptr';

function igCloseButton(id: ImGuiID; pos: ImVec2): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igCloseButton';

function igCollapseButton(id: ImGuiID; pos: ImVec2; dock_node: PImGuiDockNode): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igCollapseButton';

procedure igScrollbar(axis: ImGuiAxis); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igScrollbar';

function igScrollbarEx(bb: ImRect; id: ImGuiID; axis: ImGuiAxis; p_scroll_v: PImS64; avail_v: ImS64; contents_v: ImS64; flags: ImDrawFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igScrollbarEx';

procedure igGetWindowScrollbarRect(pOut: PImRect; window: PImGuiWindow; axis: ImGuiAxis); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetWindowScrollbarRect';

function igGetWindowScrollbarID(window: PImGuiWindow; axis: ImGuiAxis): ImGuiID; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetWindowScrollbarID';

function igGetWindowResizeCornerID(window: PImGuiWindow; n: Integer): ImGuiID; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetWindowResizeCornerID';

function igGetWindowResizeBorderID(window: PImGuiWindow; dir: ImGuiDir): ImGuiID; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetWindowResizeBorderID';

function igButtonBehavior(bb: ImRect; id: ImGuiID; out_hovered: PBoolean; out_held: PBoolean; flags: ImGuiButtonFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igButtonBehavior';

function igDragBehavior(id: ImGuiID; data_type: ImGuiDataType; p_v: Pointer; v_speed: Single; const p_min: Pointer; const p_max: Pointer; const format: PAnsiChar; flags: ImGuiSliderFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDragBehavior';

function igSliderBehavior(bb: ImRect; id: ImGuiID; data_type: ImGuiDataType; p_v: Pointer; const p_min: Pointer; const p_max: Pointer; const format: PAnsiChar; flags: ImGuiSliderFlags; out_grab_bb: PImRect): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSliderBehavior';

function igSplitterBehavior(bb: ImRect; id: ImGuiID; axis: ImGuiAxis; size1: PSingle; size2: PSingle; min_size1: Single; min_size2: Single; hover_extend: Single; hover_visibility_delay: Single; bg_col: ImU32): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSplitterBehavior';

function igTreeNodeBehavior(id: ImGuiID; flags: ImGuiTreeNodeFlags; const label_: PAnsiChar; const label_end: PAnsiChar): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTreeNodeBehavior';

procedure igTreePushOverrideID(id: ImGuiID); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTreePushOverrideID';

function igTreeNodeGetOpen(storage_id: ImGuiID): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTreeNodeGetOpen';

procedure igTreeNodeSetOpen(storage_id: ImGuiID; open: Boolean); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTreeNodeSetOpen';

function igTreeNodeUpdateNextOpen(storage_id: ImGuiID; flags: ImGuiTreeNodeFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTreeNodeUpdateNextOpen';

function igDataTypeGetInfo(data_type: ImGuiDataType): PImGuiDataTypeInfo; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDataTypeGetInfo';

function igDataTypeFormatString(buf: PAnsiChar; buf_size: Integer; data_type: ImGuiDataType; const p_data: Pointer; const format: PAnsiChar): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDataTypeFormatString';

procedure igDataTypeApplyOp(data_type: ImGuiDataType; op: Integer; output: Pointer; const arg_1: Pointer; const arg_2: Pointer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDataTypeApplyOp';

function igDataTypeApplyFromText(const buf: PAnsiChar; data_type: ImGuiDataType; p_data: Pointer; const format: PAnsiChar; p_data_when_empty: Pointer): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDataTypeApplyFromText';

function igDataTypeCompare(data_type: ImGuiDataType; const arg_1: Pointer; const arg_2: Pointer): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDataTypeCompare';

function igDataTypeClamp(data_type: ImGuiDataType; p_data: Pointer; const p_min: Pointer; const p_max: Pointer): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDataTypeClamp';

function igInputTextEx(const label_: PAnsiChar; const hint: PAnsiChar; buf: PAnsiChar; buf_size: Integer; size_arg: ImVec2; flags: ImGuiInputTextFlags; callback: ImGuiInputTextCallback; user_data: Pointer): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igInputTextEx';

procedure igInputTextDeactivateHook(id: ImGuiID); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igInputTextDeactivateHook';

function igTempInputText(bb: ImRect; id: ImGuiID; const label_: PAnsiChar; buf: PAnsiChar; buf_size: Integer; flags: ImGuiInputTextFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTempInputText';

function igTempInputScalar(bb: ImRect; id: ImGuiID; const label_: PAnsiChar; data_type: ImGuiDataType; p_data: Pointer; const format: PAnsiChar; const p_clamp_min: Pointer; const p_clamp_max: Pointer): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTempInputScalar';

function igTempInputIsActive(id: ImGuiID): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTempInputIsActive';

function igGetInputTextState(id: ImGuiID): PImGuiInputTextState; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetInputTextState';

procedure igSetNextItemRefVal(data_type: ImGuiDataType; p_data: Pointer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetNextItemRefVal';

procedure igColorTooltip(const text: PAnsiChar; const col: PSingle; flags: ImGuiColorEditFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igColorTooltip';

procedure igColorEditOptionsPopup(const col: PSingle; flags: ImGuiColorEditFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igColorEditOptionsPopup';

procedure igColorPickerOptionsPopup(const ref_col: PSingle; flags: ImGuiColorEditFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igColorPickerOptionsPopup';

type
  igPlotEx_values_getter = function(data: Pointer; idx: Integer): Single; cdecl;

function igPlotEx(plot_type: ImGuiPlotType; const label_: PAnsiChar; values_getter: igPlotEx_values_getter; data: Pointer; values_count: Integer; values_offset: Integer; const overlay_text: PAnsiChar; scale_min: Single; scale_max: Single; size_arg: ImVec2): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPlotEx';

procedure igShadeVertsLinearColorGradientKeepAlpha(draw_list: PImDrawList; vert_start_idx: Integer; vert_end_idx: Integer; gradient_p0: ImVec2; gradient_p1: ImVec2; col0: ImU32; col1: ImU32); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igShadeVertsLinearColorGradientKeepAlpha';

procedure igShadeVertsLinearUV(draw_list: PImDrawList; vert_start_idx: Integer; vert_end_idx: Integer; a: ImVec2; b: ImVec2; uv_a: ImVec2; uv_b: ImVec2; clamp: Boolean); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igShadeVertsLinearUV';

procedure igShadeVertsTransformPos(draw_list: PImDrawList; vert_start_idx: Integer; vert_end_idx: Integer; pivot_in: ImVec2; cos_a: Single; sin_a: Single; pivot_out: ImVec2); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igShadeVertsTransformPos';

procedure igGcCompactTransientMiscBuffers(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGcCompactTransientMiscBuffers';

procedure igGcCompactTransientWindowBuffers(window: PImGuiWindow); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGcCompactTransientWindowBuffers';

procedure igGcAwakeTransientWindowBuffers(window: PImGuiWindow); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGcAwakeTransientWindowBuffers';

procedure igDebugAllocHook(info: PImGuiDebugAllocInfo; frame_count: Integer; ptr: Pointer; size: NativeUInt); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugAllocHook';

procedure igErrorCheckEndFrameRecover(log_callback: ImGuiErrorLogCallback; user_data: Pointer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igErrorCheckEndFrameRecover';

procedure igErrorCheckEndWindowRecover(log_callback: ImGuiErrorLogCallback; user_data: Pointer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igErrorCheckEndWindowRecover';

procedure igErrorCheckUsingSetCursorPosToExtendParentBoundaries(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igErrorCheckUsingSetCursorPosToExtendParentBoundaries';

procedure igDebugDrawCursorPos(col: ImU32); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugDrawCursorPos';

procedure igDebugDrawLineExtents(col: ImU32); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugDrawLineExtents';

procedure igDebugDrawItemRect(col: ImU32); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugDrawItemRect';

procedure igDebugTextUnformattedWithLocateItem(const line_begin: PAnsiChar; const line_end: PAnsiChar); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugTextUnformattedWithLocateItem';

procedure igDebugLocateItem(target_id: ImGuiID); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugLocateItem';

procedure igDebugLocateItemOnHover(target_id: ImGuiID); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugLocateItemOnHover';

procedure igDebugLocateItemResolveWithLastItem(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugLocateItemResolveWithLastItem';

procedure igDebugBreakClearData(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugBreakClearData';

function igDebugBreakButton(const label_: PAnsiChar; const description_of_location: PAnsiChar): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugBreakButton';

procedure igDebugBreakButtonTooltip(keyboard_only: Boolean; const description_of_location: PAnsiChar); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugBreakButtonTooltip';

procedure igShowFontAtlas(atlas: PImFontAtlas); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igShowFontAtlas';

procedure igDebugHookIdInfo(id: ImGuiID; data_type: ImGuiDataType; const data_id: Pointer; const data_id_end: Pointer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugHookIdInfo';

procedure igDebugNodeColumns(columns: PImGuiOldColumns); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugNodeColumns';

procedure igDebugNodeDockNode(node: PImGuiDockNode; const label_: PAnsiChar); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugNodeDockNode';

procedure igDebugNodeDrawList(window: PImGuiWindow; viewport: PImGuiViewportP; const draw_list: PImDrawList; const label_: PAnsiChar); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugNodeDrawList';

procedure igDebugNodeDrawCmdShowMeshAndBoundingBox(out_draw_list: PImDrawList; const draw_list: PImDrawList; const draw_cmd: PImDrawCmd; show_mesh: Boolean; show_aabb: Boolean); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugNodeDrawCmdShowMeshAndBoundingBox';

procedure igDebugNodeFont(font: PImFont); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugNodeFont';

procedure igDebugNodeFontGlyph(font: PImFont; const glyph: PImFontGlyph); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugNodeFontGlyph';

procedure igDebugNodeStorage(storage: PImGuiStorage; const label_: PAnsiChar); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugNodeStorage';

procedure igDebugNodeTabBar(tab_bar: PImGuiTabBar; const label_: PAnsiChar); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugNodeTabBar';

procedure igDebugNodeTable(table: PImGuiTable); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugNodeTable';

procedure igDebugNodeTableSettings(settings: PImGuiTableSettings); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugNodeTableSettings';

procedure igDebugNodeInputTextState(state: PImGuiInputTextState); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugNodeInputTextState';

procedure igDebugNodeTypingSelectState(state: PImGuiTypingSelectState); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugNodeTypingSelectState';

procedure igDebugNodeMultiSelectState(state: PImGuiMultiSelectState); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugNodeMultiSelectState';

procedure igDebugNodeWindow(window: PImGuiWindow; const label_: PAnsiChar); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugNodeWindow';

procedure igDebugNodeWindowSettings(settings: PImGuiWindowSettings); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugNodeWindowSettings';

procedure igDebugNodeWindowsList(windows: PImVector_ImGuiWindowPtr; const label_: PAnsiChar); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugNodeWindowsList';

procedure igDebugNodeWindowsListByBeginStackParent(windows: PPImGuiWindow; windows_size: Integer; parent_in_begin_stack: PImGuiWindow); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugNodeWindowsListByBeginStackParent';

procedure igDebugNodeViewport(viewport: PImGuiViewportP); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugNodeViewport';

procedure igDebugNodePlatformMonitor(monitor: PImGuiPlatformMonitor; const label_: PAnsiChar; idx: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugNodePlatformMonitor';

procedure igDebugRenderKeyboardPreview(draw_list: PImDrawList); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugRenderKeyboardPreview';

procedure igDebugRenderViewportThumbnail(draw_list: PImDrawList; viewport: PImGuiViewportP; bb: ImRect); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugRenderViewportThumbnail';

function igImFontAtlasGetBuilderForStbTruetype(): PImFontBuilderIO; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImFontAtlasGetBuilderForStbTruetype';

procedure igImFontAtlasUpdateConfigDataPointers(atlas: PImFontAtlas); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImFontAtlasUpdateConfigDataPointers';

procedure igImFontAtlasBuildInit(atlas: PImFontAtlas); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImFontAtlasBuildInit';

procedure igImFontAtlasBuildSetupFont(atlas: PImFontAtlas; font: PImFont; font_config: PImFontConfig; ascent: Single; descent: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImFontAtlasBuildSetupFont';

procedure igImFontAtlasBuildPackCustomRects(atlas: PImFontAtlas; stbrp_context_opaque: Pointer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImFontAtlasBuildPackCustomRects';

procedure igImFontAtlasBuildFinish(atlas: PImFontAtlas); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImFontAtlasBuildFinish';

procedure igImFontAtlasBuildRender8bppRectFromString(atlas: PImFontAtlas; x: Integer; y: Integer; w: Integer; h: Integer; const in_str: PAnsiChar; in_marker_char: AnsiChar; in_marker_pixel_value: Byte); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImFontAtlasBuildRender8bppRectFromString';

procedure igImFontAtlasBuildRender32bppRectFromString(atlas: PImFontAtlas; x: Integer; y: Integer; w: Integer; h: Integer; const in_str: PAnsiChar; in_marker_char: AnsiChar; in_marker_pixel_value: Cardinal); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImFontAtlasBuildRender32bppRectFromString';

procedure igImFontAtlasBuildMultiplyCalcLookupTable(out_table: PByte; in_multiply_factor: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImFontAtlasBuildMultiplyCalcLookupTable';

procedure igImFontAtlasBuildMultiplyRectAlpha8(table: PByte; pixels: PByte; x: Integer; y: Integer; w: Integer; h: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImFontAtlasBuildMultiplyRectAlpha8';

/////////////////////////hand written functions
procedure igLogText(const fmt: PAnsiChar) varargs; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igLogText';

procedure ImGuiTextBuffer_appendf(buffer: PImGuiTextBuffer; const fmt: PAnsiChar) varargs; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiTextBuffer_appendf';

function igGET_FLT_MAX(): Single; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGET_FLT_MAX';

function igGET_FLT_MIN(): Single; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGET_FLT_MIN';

function ImVector_ImWchar_create(): PImVector_ImWchar; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImVector_ImWchar_create';

procedure ImVector_ImWchar_destroy(self: PImVector_ImWchar); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImVector_ImWchar_destroy';

procedure ImVector_ImWchar_Init(p: PImVector_ImWchar); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImVector_ImWchar_Init';

procedure ImVector_ImWchar_UnInit(p: PImVector_ImWchar); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImVector_ImWchar_UnInit';

type
  ImGuiPlatformIO_Set_Platform_GetWindowPos_user_callback = procedure(vp: PImGuiViewport; out_pos: PImVec2); cdecl;

procedure ImGuiPlatformIO_Set_Platform_GetWindowPos(platform_io: PImGuiPlatformIO; user_callback: ImGuiPlatformIO_Set_Platform_GetWindowPos_user_callback); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiPlatformIO_Set_Platform_GetWindowPos';

type
  ImGuiPlatformIO_Set_Platform_GetWindowSize_user_callback = procedure(vp: PImGuiViewport; out_size: PImVec2); cdecl;

procedure ImGuiPlatformIO_Set_Platform_GetWindowSize(platform_io: PImGuiPlatformIO; user_callback: ImGuiPlatformIO_Set_Platform_GetWindowSize_user_callback); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiPlatformIO_Set_Platform_GetWindowSize';

function ImPlotPoint_ImPlotPoint_Nil(): PImPlotPoint; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotPoint_ImPlotPoint_Nil';

procedure ImPlotPoint_destroy(self: PImPlotPoint); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotPoint_destroy';

function ImPlotPoint_ImPlotPoint_double(_x: Double; _y: Double): PImPlotPoint; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotPoint_ImPlotPoint_double';

function ImPlotPoint_ImPlotPoint_Vec2(p: ImVec2): PImPlotPoint; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotPoint_ImPlotPoint_Vec2';

function ImPlotRange_ImPlotRange_Nil(): PImPlotRange; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotRange_ImPlotRange_Nil';

procedure ImPlotRange_destroy(self: PImPlotRange); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotRange_destroy';

function ImPlotRange_ImPlotRange_double(_min: Double; _max: Double): PImPlotRange; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotRange_ImPlotRange_double';

function ImPlotRange_Contains(self: PImPlotRange; value: Double): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotRange_Contains';

function ImPlotRange_Size(self: PImPlotRange): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotRange_Size';

function ImPlotRange_Clamp(self: PImPlotRange; value: Double): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotRange_Clamp';

function ImPlotRect_ImPlotRect_Nil(): PImPlotRect; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotRect_ImPlotRect_Nil';

procedure ImPlotRect_destroy(self: PImPlotRect); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotRect_destroy';

function ImPlotRect_ImPlotRect_double(x_min: Double; x_max: Double; y_min: Double; y_max: Double): PImPlotRect; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotRect_ImPlotRect_double';

function ImPlotRect_Contains_PlotPoInt(self: PImPlotRect; p: ImPlotPoint): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotRect_Contains_PlotPoInt';

function ImPlotRect_Contains_double(self: PImPlotRect; x: Double; y: Double): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotRect_Contains_double';

procedure ImPlotRect_Size(pOut: PImPlotPoint; self: PImPlotRect); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotRect_Size';

procedure ImPlotRect_Clamp_PlotPoInt(pOut: PImPlotPoint; self: PImPlotRect; p: ImPlotPoint); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotRect_Clamp_PlotPoInt';

procedure ImPlotRect_Clamp_double(pOut: PImPlotPoint; self: PImPlotRect; x: Double; y: Double); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotRect_Clamp_double';

procedure ImPlotRect_Min(pOut: PImPlotPoint; self: PImPlotRect); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotRect_Min';

procedure ImPlotRect_Max(pOut: PImPlotPoint; self: PImPlotRect); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotRect_Max';

function ImPlotStyle_ImPlotStyle(): PImPlotStyle; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotStyle_ImPlotStyle';

procedure ImPlotStyle_destroy(self: PImPlotStyle); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotStyle_destroy';

function ImPlotInputMap_ImPlotInputMap(): PImPlotInputMap; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotInputMap_ImPlotInputMap';

procedure ImPlotInputMap_destroy(self: PImPlotInputMap); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotInputMap_destroy';

function ImPlot_CreateContext(): PImPlotContext; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_CreateContext';

procedure ImPlot_DestroyContext(ctx: PImPlotContext); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_DestroyContext';

function ImPlot_GetCurrentContext(): PImPlotContext; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_GetCurrentContext';

procedure ImPlot_SetCurrentContext(ctx: PImPlotContext); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_SetCurrentContext';

procedure ImPlot_SetImGuiContext(ctx: PImGuiContext); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_SetImGuiContext';

function ImPlot_BeginPlot(const title_id: PAnsiChar; size: ImVec2; flags: ImPlotFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_BeginPlot';

procedure ImPlot_EndPlot(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_EndPlot';

function ImPlot_BeginSubplots(const title_id: PAnsiChar; rows: Integer; cols: Integer; size: ImVec2; flags: ImPlotSubplotFlags; row_ratios: PSingle; col_ratios: PSingle): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_BeginSubplots';

procedure ImPlot_EndSubplots(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_EndSubplots';

procedure ImPlot_SetupAxis(axis: ImAxis; const label_: PAnsiChar; flags: ImPlotAxisFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_SetupAxis';

procedure ImPlot_SetupAxisLimits(axis: ImAxis; v_min: Double; v_max: Double; cond: ImPlotCond); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_SetupAxisLimits';

procedure ImPlot_SetupAxisLinks(axis: ImAxis; link_min: PDouble; link_max: PDouble); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_SetupAxisLinks';

procedure ImPlot_SetupAxisFormat_Str(axis: ImAxis; const fmt: PAnsiChar); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_SetupAxisFormat_Str';

procedure ImPlot_SetupAxisFormat_PlotFormatter(axis: ImAxis; formatter: ImPlotFormatter; data: Pointer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_SetupAxisFormat_PlotFormatter';

procedure ImPlot_SetupAxisTicks_doublePtr(axis: ImAxis; const values: PDouble; n_ticks: Integer; labels: PPAnsiChar; keep_default: Boolean); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_SetupAxisTicks_doublePtr';

procedure ImPlot_SetupAxisTicks_double(axis: ImAxis; v_min: Double; v_max: Double; n_ticks: Integer; labels: PPAnsiChar; keep_default: Boolean); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_SetupAxisTicks_double';

procedure ImPlot_SetupAxisScale_PlotScale(axis: ImAxis; scale: ImPlotScale); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_SetupAxisScale_PlotScale';

procedure ImPlot_SetupAxisScale_PlotTransform(axis: ImAxis; forward_: ImPlotTransform; inverse: ImPlotTransform; data: Pointer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_SetupAxisScale_PlotTransform';

procedure ImPlot_SetupAxisLimitsConstraints(axis: ImAxis; v_min: Double; v_max: Double); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_SetupAxisLimitsConstraints';

procedure ImPlot_SetupAxisZoomConstraints(axis: ImAxis; z_min: Double; z_max: Double); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_SetupAxisZoomConstraints';

procedure ImPlot_SetupAxes(const x_label: PAnsiChar; const y_label: PAnsiChar; x_flags: ImPlotAxisFlags; y_flags: ImPlotAxisFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_SetupAxes';

procedure ImPlot_SetupAxesLimits(x_min: Double; x_max: Double; y_min: Double; y_max: Double; cond: ImPlotCond); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_SetupAxesLimits';

procedure ImPlot_SetupLegend(location: ImPlotLocation; flags: ImPlotLegendFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_SetupLegend';

procedure ImPlot_SetupMouseText(location: ImPlotLocation; flags: ImPlotMouseTextFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_SetupMouseText';

procedure ImPlot_SetupFinish(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_SetupFinish';

procedure ImPlot_SetNextAxisLimits(axis: ImAxis; v_min: Double; v_max: Double; cond: ImPlotCond); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_SetNextAxisLimits';

procedure ImPlot_SetNextAxisLinks(axis: ImAxis; link_min: PDouble; link_max: PDouble); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_SetNextAxisLinks';

procedure ImPlot_SetNextAxisToFit(axis: ImAxis); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_SetNextAxisToFit';

procedure ImPlot_SetNextAxesLimits(x_min: Double; x_max: Double; y_min: Double; y_max: Double; cond: ImPlotCond); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_SetNextAxesLimits';

procedure ImPlot_SetNextAxesToFit(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_SetNextAxesToFit';

procedure ImPlot_PlotLine_FloatPtrInt(const label_id: PAnsiChar; const values: PSingle; count: Integer; xscale: Double; xstart: Double; flags: ImPlotLineFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotLine_FloatPtrInt';

procedure ImPlot_PlotLine_doublePtrInt(const label_id: PAnsiChar; const values: PDouble; count: Integer; xscale: Double; xstart: Double; flags: ImPlotLineFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotLine_doublePtrInt';

procedure ImPlot_PlotLine_S8PtrInt(const label_id: PAnsiChar; const values: PImS8; count: Integer; xscale: Double; xstart: Double; flags: ImPlotLineFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotLine_S8PtrInt';

procedure ImPlot_PlotLine_U8PtrInt(const label_id: PAnsiChar; const values: PImU8; count: Integer; xscale: Double; xstart: Double; flags: ImPlotLineFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotLine_U8PtrInt';

procedure ImPlot_PlotLine_S16PtrInt(const label_id: PAnsiChar; const values: PImS16; count: Integer; xscale: Double; xstart: Double; flags: ImPlotLineFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotLine_S16PtrInt';

procedure ImPlot_PlotLine_U16PtrInt(const label_id: PAnsiChar; const values: PImU16; count: Integer; xscale: Double; xstart: Double; flags: ImPlotLineFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotLine_U16PtrInt';

procedure ImPlot_PlotLine_S32PtrInt(const label_id: PAnsiChar; const values: PImS32; count: Integer; xscale: Double; xstart: Double; flags: ImPlotLineFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotLine_S32PtrInt';

procedure ImPlot_PlotLine_U32PtrInt(const label_id: PAnsiChar; const values: PImU32; count: Integer; xscale: Double; xstart: Double; flags: ImPlotLineFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotLine_U32PtrInt';

procedure ImPlot_PlotLine_S64PtrInt(const label_id: PAnsiChar; const values: PImS64; count: Integer; xscale: Double; xstart: Double; flags: ImPlotLineFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotLine_S64PtrInt';

procedure ImPlot_PlotLine_U64PtrInt(const label_id: PAnsiChar; const values: PImU64; count: Integer; xscale: Double; xstart: Double; flags: ImPlotLineFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotLine_U64PtrInt';

procedure ImPlot_PlotLine_FloatPtrFloatPtr(const label_id: PAnsiChar; const xs: PSingle; const ys: PSingle; count: Integer; flags: ImPlotLineFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotLine_FloatPtrFloatPtr';

procedure ImPlot_PlotLine_doublePtrdoublePtr(const label_id: PAnsiChar; const xs: PDouble; const ys: PDouble; count: Integer; flags: ImPlotLineFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotLine_doublePtrdoublePtr';

procedure ImPlot_PlotLine_S8PtrS8Ptr(const label_id: PAnsiChar; const xs: PImS8; const ys: PImS8; count: Integer; flags: ImPlotLineFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotLine_S8PtrS8Ptr';

procedure ImPlot_PlotLine_U8PtrU8Ptr(const label_id: PAnsiChar; const xs: PImU8; const ys: PImU8; count: Integer; flags: ImPlotLineFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotLine_U8PtrU8Ptr';

procedure ImPlot_PlotLine_S16PtrS16Ptr(const label_id: PAnsiChar; const xs: PImS16; const ys: PImS16; count: Integer; flags: ImPlotLineFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotLine_S16PtrS16Ptr';

procedure ImPlot_PlotLine_U16PtrU16Ptr(const label_id: PAnsiChar; const xs: PImU16; const ys: PImU16; count: Integer; flags: ImPlotLineFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotLine_U16PtrU16Ptr';

procedure ImPlot_PlotLine_S32PtrS32Ptr(const label_id: PAnsiChar; const xs: PImS32; const ys: PImS32; count: Integer; flags: ImPlotLineFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotLine_S32PtrS32Ptr';

procedure ImPlot_PlotLine_U32PtrU32Ptr(const label_id: PAnsiChar; const xs: PImU32; const ys: PImU32; count: Integer; flags: ImPlotLineFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotLine_U32PtrU32Ptr';

procedure ImPlot_PlotLine_S64PtrS64Ptr(const label_id: PAnsiChar; const xs: PImS64; const ys: PImS64; count: Integer; flags: ImPlotLineFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotLine_S64PtrS64Ptr';

procedure ImPlot_PlotLine_U64PtrU64Ptr(const label_id: PAnsiChar; const xs: PImU64; const ys: PImU64; count: Integer; flags: ImPlotLineFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotLine_U64PtrU64Ptr';

procedure ImPlot_PlotLineG(const label_id: PAnsiChar; getter: ImPlotPoint_getter; data: Pointer; count: Integer; flags: ImPlotLineFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotLineG';

procedure ImPlot_PlotScatter_FloatPtrInt(const label_id: PAnsiChar; const values: PSingle; count: Integer; xscale: Double; xstart: Double; flags: ImPlotScatterFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotScatter_FloatPtrInt';

procedure ImPlot_PlotScatter_doublePtrInt(const label_id: PAnsiChar; const values: PDouble; count: Integer; xscale: Double; xstart: Double; flags: ImPlotScatterFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotScatter_doublePtrInt';

procedure ImPlot_PlotScatter_S8PtrInt(const label_id: PAnsiChar; const values: PImS8; count: Integer; xscale: Double; xstart: Double; flags: ImPlotScatterFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotScatter_S8PtrInt';

procedure ImPlot_PlotScatter_U8PtrInt(const label_id: PAnsiChar; const values: PImU8; count: Integer; xscale: Double; xstart: Double; flags: ImPlotScatterFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotScatter_U8PtrInt';

procedure ImPlot_PlotScatter_S16PtrInt(const label_id: PAnsiChar; const values: PImS16; count: Integer; xscale: Double; xstart: Double; flags: ImPlotScatterFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotScatter_S16PtrInt';

procedure ImPlot_PlotScatter_U16PtrInt(const label_id: PAnsiChar; const values: PImU16; count: Integer; xscale: Double; xstart: Double; flags: ImPlotScatterFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotScatter_U16PtrInt';

procedure ImPlot_PlotScatter_S32PtrInt(const label_id: PAnsiChar; const values: PImS32; count: Integer; xscale: Double; xstart: Double; flags: ImPlotScatterFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotScatter_S32PtrInt';

procedure ImPlot_PlotScatter_U32PtrInt(const label_id: PAnsiChar; const values: PImU32; count: Integer; xscale: Double; xstart: Double; flags: ImPlotScatterFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotScatter_U32PtrInt';

procedure ImPlot_PlotScatter_S64PtrInt(const label_id: PAnsiChar; const values: PImS64; count: Integer; xscale: Double; xstart: Double; flags: ImPlotScatterFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotScatter_S64PtrInt';

procedure ImPlot_PlotScatter_U64PtrInt(const label_id: PAnsiChar; const values: PImU64; count: Integer; xscale: Double; xstart: Double; flags: ImPlotScatterFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotScatter_U64PtrInt';

procedure ImPlot_PlotScatter_FloatPtrFloatPtr(const label_id: PAnsiChar; const xs: PSingle; const ys: PSingle; count: Integer; flags: ImPlotScatterFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotScatter_FloatPtrFloatPtr';

procedure ImPlot_PlotScatter_doublePtrdoublePtr(const label_id: PAnsiChar; const xs: PDouble; const ys: PDouble; count: Integer; flags: ImPlotScatterFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotScatter_doublePtrdoublePtr';

procedure ImPlot_PlotScatter_S8PtrS8Ptr(const label_id: PAnsiChar; const xs: PImS8; const ys: PImS8; count: Integer; flags: ImPlotScatterFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotScatter_S8PtrS8Ptr';

procedure ImPlot_PlotScatter_U8PtrU8Ptr(const label_id: PAnsiChar; const xs: PImU8; const ys: PImU8; count: Integer; flags: ImPlotScatterFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotScatter_U8PtrU8Ptr';

procedure ImPlot_PlotScatter_S16PtrS16Ptr(const label_id: PAnsiChar; const xs: PImS16; const ys: PImS16; count: Integer; flags: ImPlotScatterFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotScatter_S16PtrS16Ptr';

procedure ImPlot_PlotScatter_U16PtrU16Ptr(const label_id: PAnsiChar; const xs: PImU16; const ys: PImU16; count: Integer; flags: ImPlotScatterFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotScatter_U16PtrU16Ptr';

procedure ImPlot_PlotScatter_S32PtrS32Ptr(const label_id: PAnsiChar; const xs: PImS32; const ys: PImS32; count: Integer; flags: ImPlotScatterFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotScatter_S32PtrS32Ptr';

procedure ImPlot_PlotScatter_U32PtrU32Ptr(const label_id: PAnsiChar; const xs: PImU32; const ys: PImU32; count: Integer; flags: ImPlotScatterFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotScatter_U32PtrU32Ptr';

procedure ImPlot_PlotScatter_S64PtrS64Ptr(const label_id: PAnsiChar; const xs: PImS64; const ys: PImS64; count: Integer; flags: ImPlotScatterFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotScatter_S64PtrS64Ptr';

procedure ImPlot_PlotScatter_U64PtrU64Ptr(const label_id: PAnsiChar; const xs: PImU64; const ys: PImU64; count: Integer; flags: ImPlotScatterFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotScatter_U64PtrU64Ptr';

procedure ImPlot_PlotScatterG(const label_id: PAnsiChar; getter: ImPlotPoint_getter; data: Pointer; count: Integer; flags: ImPlotScatterFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotScatterG';

procedure ImPlot_PlotStairs_FloatPtrInt(const label_id: PAnsiChar; const values: PSingle; count: Integer; xscale: Double; xstart: Double; flags: ImPlotStairsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStairs_FloatPtrInt';

procedure ImPlot_PlotStairs_doublePtrInt(const label_id: PAnsiChar; const values: PDouble; count: Integer; xscale: Double; xstart: Double; flags: ImPlotStairsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStairs_doublePtrInt';

procedure ImPlot_PlotStairs_S8PtrInt(const label_id: PAnsiChar; const values: PImS8; count: Integer; xscale: Double; xstart: Double; flags: ImPlotStairsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStairs_S8PtrInt';

procedure ImPlot_PlotStairs_U8PtrInt(const label_id: PAnsiChar; const values: PImU8; count: Integer; xscale: Double; xstart: Double; flags: ImPlotStairsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStairs_U8PtrInt';

procedure ImPlot_PlotStairs_S16PtrInt(const label_id: PAnsiChar; const values: PImS16; count: Integer; xscale: Double; xstart: Double; flags: ImPlotStairsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStairs_S16PtrInt';

procedure ImPlot_PlotStairs_U16PtrInt(const label_id: PAnsiChar; const values: PImU16; count: Integer; xscale: Double; xstart: Double; flags: ImPlotStairsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStairs_U16PtrInt';

procedure ImPlot_PlotStairs_S32PtrInt(const label_id: PAnsiChar; const values: PImS32; count: Integer; xscale: Double; xstart: Double; flags: ImPlotStairsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStairs_S32PtrInt';

procedure ImPlot_PlotStairs_U32PtrInt(const label_id: PAnsiChar; const values: PImU32; count: Integer; xscale: Double; xstart: Double; flags: ImPlotStairsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStairs_U32PtrInt';

procedure ImPlot_PlotStairs_S64PtrInt(const label_id: PAnsiChar; const values: PImS64; count: Integer; xscale: Double; xstart: Double; flags: ImPlotStairsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStairs_S64PtrInt';

procedure ImPlot_PlotStairs_U64PtrInt(const label_id: PAnsiChar; const values: PImU64; count: Integer; xscale: Double; xstart: Double; flags: ImPlotStairsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStairs_U64PtrInt';

procedure ImPlot_PlotStairs_FloatPtrFloatPtr(const label_id: PAnsiChar; const xs: PSingle; const ys: PSingle; count: Integer; flags: ImPlotStairsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStairs_FloatPtrFloatPtr';

procedure ImPlot_PlotStairs_doublePtrdoublePtr(const label_id: PAnsiChar; const xs: PDouble; const ys: PDouble; count: Integer; flags: ImPlotStairsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStairs_doublePtrdoublePtr';

procedure ImPlot_PlotStairs_S8PtrS8Ptr(const label_id: PAnsiChar; const xs: PImS8; const ys: PImS8; count: Integer; flags: ImPlotStairsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStairs_S8PtrS8Ptr';

procedure ImPlot_PlotStairs_U8PtrU8Ptr(const label_id: PAnsiChar; const xs: PImU8; const ys: PImU8; count: Integer; flags: ImPlotStairsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStairs_U8PtrU8Ptr';

procedure ImPlot_PlotStairs_S16PtrS16Ptr(const label_id: PAnsiChar; const xs: PImS16; const ys: PImS16; count: Integer; flags: ImPlotStairsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStairs_S16PtrS16Ptr';

procedure ImPlot_PlotStairs_U16PtrU16Ptr(const label_id: PAnsiChar; const xs: PImU16; const ys: PImU16; count: Integer; flags: ImPlotStairsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStairs_U16PtrU16Ptr';

procedure ImPlot_PlotStairs_S32PtrS32Ptr(const label_id: PAnsiChar; const xs: PImS32; const ys: PImS32; count: Integer; flags: ImPlotStairsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStairs_S32PtrS32Ptr';

procedure ImPlot_PlotStairs_U32PtrU32Ptr(const label_id: PAnsiChar; const xs: PImU32; const ys: PImU32; count: Integer; flags: ImPlotStairsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStairs_U32PtrU32Ptr';

procedure ImPlot_PlotStairs_S64PtrS64Ptr(const label_id: PAnsiChar; const xs: PImS64; const ys: PImS64; count: Integer; flags: ImPlotStairsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStairs_S64PtrS64Ptr';

procedure ImPlot_PlotStairs_U64PtrU64Ptr(const label_id: PAnsiChar; const xs: PImU64; const ys: PImU64; count: Integer; flags: ImPlotStairsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStairs_U64PtrU64Ptr';

procedure ImPlot_PlotStairsG(const label_id: PAnsiChar; getter: ImPlotPoint_getter; data: Pointer; count: Integer; flags: ImPlotStairsFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStairsG';

procedure ImPlot_PlotShaded_FloatPtrInt(const label_id: PAnsiChar; const values: PSingle; count: Integer; yref: Double; xscale: Double; xstart: Double; flags: ImPlotShadedFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotShaded_FloatPtrInt';

procedure ImPlot_PlotShaded_doublePtrInt(const label_id: PAnsiChar; const values: PDouble; count: Integer; yref: Double; xscale: Double; xstart: Double; flags: ImPlotShadedFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotShaded_doublePtrInt';

procedure ImPlot_PlotShaded_S8PtrInt(const label_id: PAnsiChar; const values: PImS8; count: Integer; yref: Double; xscale: Double; xstart: Double; flags: ImPlotShadedFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotShaded_S8PtrInt';

procedure ImPlot_PlotShaded_U8PtrInt(const label_id: PAnsiChar; const values: PImU8; count: Integer; yref: Double; xscale: Double; xstart: Double; flags: ImPlotShadedFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotShaded_U8PtrInt';

procedure ImPlot_PlotShaded_S16PtrInt(const label_id: PAnsiChar; const values: PImS16; count: Integer; yref: Double; xscale: Double; xstart: Double; flags: ImPlotShadedFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotShaded_S16PtrInt';

procedure ImPlot_PlotShaded_U16PtrInt(const label_id: PAnsiChar; const values: PImU16; count: Integer; yref: Double; xscale: Double; xstart: Double; flags: ImPlotShadedFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotShaded_U16PtrInt';

procedure ImPlot_PlotShaded_S32PtrInt(const label_id: PAnsiChar; const values: PImS32; count: Integer; yref: Double; xscale: Double; xstart: Double; flags: ImPlotShadedFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotShaded_S32PtrInt';

procedure ImPlot_PlotShaded_U32PtrInt(const label_id: PAnsiChar; const values: PImU32; count: Integer; yref: Double; xscale: Double; xstart: Double; flags: ImPlotShadedFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotShaded_U32PtrInt';

procedure ImPlot_PlotShaded_S64PtrInt(const label_id: PAnsiChar; const values: PImS64; count: Integer; yref: Double; xscale: Double; xstart: Double; flags: ImPlotShadedFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotShaded_S64PtrInt';

procedure ImPlot_PlotShaded_U64PtrInt(const label_id: PAnsiChar; const values: PImU64; count: Integer; yref: Double; xscale: Double; xstart: Double; flags: ImPlotShadedFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotShaded_U64PtrInt';

procedure ImPlot_PlotShaded_FloatPtrFloatPtrInt(const label_id: PAnsiChar; const xs: PSingle; const ys: PSingle; count: Integer; yref: Double; flags: ImPlotShadedFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotShaded_FloatPtrFloatPtrInt';

procedure ImPlot_PlotShaded_doublePtrdoublePtrInt(const label_id: PAnsiChar; const xs: PDouble; const ys: PDouble; count: Integer; yref: Double; flags: ImPlotShadedFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotShaded_doublePtrdoublePtrInt';

procedure ImPlot_PlotShaded_S8PtrS8PtrInt(const label_id: PAnsiChar; const xs: PImS8; const ys: PImS8; count: Integer; yref: Double; flags: ImPlotShadedFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotShaded_S8PtrS8PtrInt';

procedure ImPlot_PlotShaded_U8PtrU8PtrInt(const label_id: PAnsiChar; const xs: PImU8; const ys: PImU8; count: Integer; yref: Double; flags: ImPlotShadedFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotShaded_U8PtrU8PtrInt';

procedure ImPlot_PlotShaded_S16PtrS16PtrInt(const label_id: PAnsiChar; const xs: PImS16; const ys: PImS16; count: Integer; yref: Double; flags: ImPlotShadedFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotShaded_S16PtrS16PtrInt';

procedure ImPlot_PlotShaded_U16PtrU16PtrInt(const label_id: PAnsiChar; const xs: PImU16; const ys: PImU16; count: Integer; yref: Double; flags: ImPlotShadedFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotShaded_U16PtrU16PtrInt';

procedure ImPlot_PlotShaded_S32PtrS32PtrInt(const label_id: PAnsiChar; const xs: PImS32; const ys: PImS32; count: Integer; yref: Double; flags: ImPlotShadedFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotShaded_S32PtrS32PtrInt';

procedure ImPlot_PlotShaded_U32PtrU32PtrInt(const label_id: PAnsiChar; const xs: PImU32; const ys: PImU32; count: Integer; yref: Double; flags: ImPlotShadedFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotShaded_U32PtrU32PtrInt';

procedure ImPlot_PlotShaded_S64PtrS64PtrInt(const label_id: PAnsiChar; const xs: PImS64; const ys: PImS64; count: Integer; yref: Double; flags: ImPlotShadedFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotShaded_S64PtrS64PtrInt';

procedure ImPlot_PlotShaded_U64PtrU64PtrInt(const label_id: PAnsiChar; const xs: PImU64; const ys: PImU64; count: Integer; yref: Double; flags: ImPlotShadedFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotShaded_U64PtrU64PtrInt';

procedure ImPlot_PlotShaded_FloatPtrFloatPtrFloatPtr(const label_id: PAnsiChar; const xs: PSingle; const ys1: PSingle; const ys2: PSingle; count: Integer; flags: ImPlotShadedFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotShaded_FloatPtrFloatPtrFloatPtr';

procedure ImPlot_PlotShaded_doublePtrdoublePtrdoublePtr(const label_id: PAnsiChar; const xs: PDouble; const ys1: PDouble; const ys2: PDouble; count: Integer; flags: ImPlotShadedFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotShaded_doublePtrdoublePtrdoublePtr';

procedure ImPlot_PlotShaded_S8PtrS8PtrS8Ptr(const label_id: PAnsiChar; const xs: PImS8; const ys1: PImS8; const ys2: PImS8; count: Integer; flags: ImPlotShadedFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotShaded_S8PtrS8PtrS8Ptr';

procedure ImPlot_PlotShaded_U8PtrU8PtrU8Ptr(const label_id: PAnsiChar; const xs: PImU8; const ys1: PImU8; const ys2: PImU8; count: Integer; flags: ImPlotShadedFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotShaded_U8PtrU8PtrU8Ptr';

procedure ImPlot_PlotShaded_S16PtrS16PtrS16Ptr(const label_id: PAnsiChar; const xs: PImS16; const ys1: PImS16; const ys2: PImS16; count: Integer; flags: ImPlotShadedFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotShaded_S16PtrS16PtrS16Ptr';

procedure ImPlot_PlotShaded_U16PtrU16PtrU16Ptr(const label_id: PAnsiChar; const xs: PImU16; const ys1: PImU16; const ys2: PImU16; count: Integer; flags: ImPlotShadedFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotShaded_U16PtrU16PtrU16Ptr';

procedure ImPlot_PlotShaded_S32PtrS32PtrS32Ptr(const label_id: PAnsiChar; const xs: PImS32; const ys1: PImS32; const ys2: PImS32; count: Integer; flags: ImPlotShadedFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotShaded_S32PtrS32PtrS32Ptr';

procedure ImPlot_PlotShaded_U32PtrU32PtrU32Ptr(const label_id: PAnsiChar; const xs: PImU32; const ys1: PImU32; const ys2: PImU32; count: Integer; flags: ImPlotShadedFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotShaded_U32PtrU32PtrU32Ptr';

procedure ImPlot_PlotShaded_S64PtrS64PtrS64Ptr(const label_id: PAnsiChar; const xs: PImS64; const ys1: PImS64; const ys2: PImS64; count: Integer; flags: ImPlotShadedFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotShaded_S64PtrS64PtrS64Ptr';

procedure ImPlot_PlotShaded_U64PtrU64PtrU64Ptr(const label_id: PAnsiChar; const xs: PImU64; const ys1: PImU64; const ys2: PImU64; count: Integer; flags: ImPlotShadedFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotShaded_U64PtrU64PtrU64Ptr';

procedure ImPlot_PlotShadedG(const label_id: PAnsiChar; getter1: ImPlotPoint_getter; data1: Pointer; getter2: ImPlotPoint_getter; data2: Pointer; count: Integer; flags: ImPlotShadedFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotShadedG';

procedure ImPlot_PlotBars_FloatPtrInt(const label_id: PAnsiChar; const values: PSingle; count: Integer; bar_size: Double; shift: Double; flags: ImPlotBarsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotBars_FloatPtrInt';

procedure ImPlot_PlotBars_doublePtrInt(const label_id: PAnsiChar; const values: PDouble; count: Integer; bar_size: Double; shift: Double; flags: ImPlotBarsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotBars_doublePtrInt';

procedure ImPlot_PlotBars_S8PtrInt(const label_id: PAnsiChar; const values: PImS8; count: Integer; bar_size: Double; shift: Double; flags: ImPlotBarsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotBars_S8PtrInt';

procedure ImPlot_PlotBars_U8PtrInt(const label_id: PAnsiChar; const values: PImU8; count: Integer; bar_size: Double; shift: Double; flags: ImPlotBarsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotBars_U8PtrInt';

procedure ImPlot_PlotBars_S16PtrInt(const label_id: PAnsiChar; const values: PImS16; count: Integer; bar_size: Double; shift: Double; flags: ImPlotBarsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotBars_S16PtrInt';

procedure ImPlot_PlotBars_U16PtrInt(const label_id: PAnsiChar; const values: PImU16; count: Integer; bar_size: Double; shift: Double; flags: ImPlotBarsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotBars_U16PtrInt';

procedure ImPlot_PlotBars_S32PtrInt(const label_id: PAnsiChar; const values: PImS32; count: Integer; bar_size: Double; shift: Double; flags: ImPlotBarsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotBars_S32PtrInt';

procedure ImPlot_PlotBars_U32PtrInt(const label_id: PAnsiChar; const values: PImU32; count: Integer; bar_size: Double; shift: Double; flags: ImPlotBarsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotBars_U32PtrInt';

procedure ImPlot_PlotBars_S64PtrInt(const label_id: PAnsiChar; const values: PImS64; count: Integer; bar_size: Double; shift: Double; flags: ImPlotBarsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotBars_S64PtrInt';

procedure ImPlot_PlotBars_U64PtrInt(const label_id: PAnsiChar; const values: PImU64; count: Integer; bar_size: Double; shift: Double; flags: ImPlotBarsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotBars_U64PtrInt';

procedure ImPlot_PlotBars_FloatPtrFloatPtr(const label_id: PAnsiChar; const xs: PSingle; const ys: PSingle; count: Integer; bar_size: Double; flags: ImPlotBarsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotBars_FloatPtrFloatPtr';

procedure ImPlot_PlotBars_doublePtrdoublePtr(const label_id: PAnsiChar; const xs: PDouble; const ys: PDouble; count: Integer; bar_size: Double; flags: ImPlotBarsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotBars_doublePtrdoublePtr';

procedure ImPlot_PlotBars_S8PtrS8Ptr(const label_id: PAnsiChar; const xs: PImS8; const ys: PImS8; count: Integer; bar_size: Double; flags: ImPlotBarsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotBars_S8PtrS8Ptr';

procedure ImPlot_PlotBars_U8PtrU8Ptr(const label_id: PAnsiChar; const xs: PImU8; const ys: PImU8; count: Integer; bar_size: Double; flags: ImPlotBarsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotBars_U8PtrU8Ptr';

procedure ImPlot_PlotBars_S16PtrS16Ptr(const label_id: PAnsiChar; const xs: PImS16; const ys: PImS16; count: Integer; bar_size: Double; flags: ImPlotBarsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotBars_S16PtrS16Ptr';

procedure ImPlot_PlotBars_U16PtrU16Ptr(const label_id: PAnsiChar; const xs: PImU16; const ys: PImU16; count: Integer; bar_size: Double; flags: ImPlotBarsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotBars_U16PtrU16Ptr';

procedure ImPlot_PlotBars_S32PtrS32Ptr(const label_id: PAnsiChar; const xs: PImS32; const ys: PImS32; count: Integer; bar_size: Double; flags: ImPlotBarsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotBars_S32PtrS32Ptr';

procedure ImPlot_PlotBars_U32PtrU32Ptr(const label_id: PAnsiChar; const xs: PImU32; const ys: PImU32; count: Integer; bar_size: Double; flags: ImPlotBarsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotBars_U32PtrU32Ptr';

procedure ImPlot_PlotBars_S64PtrS64Ptr(const label_id: PAnsiChar; const xs: PImS64; const ys: PImS64; count: Integer; bar_size: Double; flags: ImPlotBarsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotBars_S64PtrS64Ptr';

procedure ImPlot_PlotBars_U64PtrU64Ptr(const label_id: PAnsiChar; const xs: PImU64; const ys: PImU64; count: Integer; bar_size: Double; flags: ImPlotBarsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotBars_U64PtrU64Ptr';

procedure ImPlot_PlotBarsG(const label_id: PAnsiChar; getter: ImPlotPoint_getter; data: Pointer; count: Integer; bar_size: Double; flags: ImPlotBarsFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotBarsG';

procedure ImPlot_PlotBarGroups_FloatPtr(label_ids: PPAnsiChar; const values: PSingle; item_count: Integer; group_count: Integer; group_size: Double; shift: Double; flags: ImPlotBarGroupsFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotBarGroups_FloatPtr';

procedure ImPlot_PlotBarGroups_doublePtr(label_ids: PPAnsiChar; const values: PDouble; item_count: Integer; group_count: Integer; group_size: Double; shift: Double; flags: ImPlotBarGroupsFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotBarGroups_doublePtr';

procedure ImPlot_PlotBarGroups_S8Ptr(label_ids: PPAnsiChar; const values: PImS8; item_count: Integer; group_count: Integer; group_size: Double; shift: Double; flags: ImPlotBarGroupsFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotBarGroups_S8Ptr';

procedure ImPlot_PlotBarGroups_U8Ptr(label_ids: PPAnsiChar; const values: PImU8; item_count: Integer; group_count: Integer; group_size: Double; shift: Double; flags: ImPlotBarGroupsFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotBarGroups_U8Ptr';

procedure ImPlot_PlotBarGroups_S16Ptr(label_ids: PPAnsiChar; const values: PImS16; item_count: Integer; group_count: Integer; group_size: Double; shift: Double; flags: ImPlotBarGroupsFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotBarGroups_S16Ptr';

procedure ImPlot_PlotBarGroups_U16Ptr(label_ids: PPAnsiChar; const values: PImU16; item_count: Integer; group_count: Integer; group_size: Double; shift: Double; flags: ImPlotBarGroupsFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotBarGroups_U16Ptr';

procedure ImPlot_PlotBarGroups_S32Ptr(label_ids: PPAnsiChar; const values: PImS32; item_count: Integer; group_count: Integer; group_size: Double; shift: Double; flags: ImPlotBarGroupsFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotBarGroups_S32Ptr';

procedure ImPlot_PlotBarGroups_U32Ptr(label_ids: PPAnsiChar; const values: PImU32; item_count: Integer; group_count: Integer; group_size: Double; shift: Double; flags: ImPlotBarGroupsFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotBarGroups_U32Ptr';

procedure ImPlot_PlotBarGroups_S64Ptr(label_ids: PPAnsiChar; const values: PImS64; item_count: Integer; group_count: Integer; group_size: Double; shift: Double; flags: ImPlotBarGroupsFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotBarGroups_S64Ptr';

procedure ImPlot_PlotBarGroups_U64Ptr(label_ids: PPAnsiChar; const values: PImU64; item_count: Integer; group_count: Integer; group_size: Double; shift: Double; flags: ImPlotBarGroupsFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotBarGroups_U64Ptr';

procedure ImPlot_PlotErrorBars_FloatPtrFloatPtrFloatPtrInt(const label_id: PAnsiChar; const xs: PSingle; const ys: PSingle; const err: PSingle; count: Integer; flags: ImPlotErrorBarsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotErrorBars_FloatPtrFloatPtrFloatPtrInt';

procedure ImPlot_PlotErrorBars_doublePtrdoublePtrdoublePtrInt(const label_id: PAnsiChar; const xs: PDouble; const ys: PDouble; const err: PDouble; count: Integer; flags: ImPlotErrorBarsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotErrorBars_doublePtrdoublePtrdoublePtrInt';

procedure ImPlot_PlotErrorBars_S8PtrS8PtrS8PtrInt(const label_id: PAnsiChar; const xs: PImS8; const ys: PImS8; const err: PImS8; count: Integer; flags: ImPlotErrorBarsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotErrorBars_S8PtrS8PtrS8PtrInt';

procedure ImPlot_PlotErrorBars_U8PtrU8PtrU8PtrInt(const label_id: PAnsiChar; const xs: PImU8; const ys: PImU8; const err: PImU8; count: Integer; flags: ImPlotErrorBarsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotErrorBars_U8PtrU8PtrU8PtrInt';

procedure ImPlot_PlotErrorBars_S16PtrS16PtrS16PtrInt(const label_id: PAnsiChar; const xs: PImS16; const ys: PImS16; const err: PImS16; count: Integer; flags: ImPlotErrorBarsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotErrorBars_S16PtrS16PtrS16PtrInt';

procedure ImPlot_PlotErrorBars_U16PtrU16PtrU16PtrInt(const label_id: PAnsiChar; const xs: PImU16; const ys: PImU16; const err: PImU16; count: Integer; flags: ImPlotErrorBarsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotErrorBars_U16PtrU16PtrU16PtrInt';

procedure ImPlot_PlotErrorBars_S32PtrS32PtrS32PtrInt(const label_id: PAnsiChar; const xs: PImS32; const ys: PImS32; const err: PImS32; count: Integer; flags: ImPlotErrorBarsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotErrorBars_S32PtrS32PtrS32PtrInt';

procedure ImPlot_PlotErrorBars_U32PtrU32PtrU32PtrInt(const label_id: PAnsiChar; const xs: PImU32; const ys: PImU32; const err: PImU32; count: Integer; flags: ImPlotErrorBarsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotErrorBars_U32PtrU32PtrU32PtrInt';

procedure ImPlot_PlotErrorBars_S64PtrS64PtrS64PtrInt(const label_id: PAnsiChar; const xs: PImS64; const ys: PImS64; const err: PImS64; count: Integer; flags: ImPlotErrorBarsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotErrorBars_S64PtrS64PtrS64PtrInt';

procedure ImPlot_PlotErrorBars_U64PtrU64PtrU64PtrInt(const label_id: PAnsiChar; const xs: PImU64; const ys: PImU64; const err: PImU64; count: Integer; flags: ImPlotErrorBarsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotErrorBars_U64PtrU64PtrU64PtrInt';

procedure ImPlot_PlotErrorBars_FloatPtrFloatPtrFloatPtrFloatPtr(const label_id: PAnsiChar; const xs: PSingle; const ys: PSingle; const neg: PSingle; const pos: PSingle; count: Integer; flags: ImPlotErrorBarsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotErrorBars_FloatPtrFloatPtrFloatPtrFloatPtr';

procedure ImPlot_PlotErrorBars_doublePtrdoublePtrdoublePtrdoublePtr(const label_id: PAnsiChar; const xs: PDouble; const ys: PDouble; const neg: PDouble; const pos: PDouble; count: Integer; flags: ImPlotErrorBarsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotErrorBars_doublePtrdoublePtrdoublePtrdoublePtr';

procedure ImPlot_PlotErrorBars_S8PtrS8PtrS8PtrS8Ptr(const label_id: PAnsiChar; const xs: PImS8; const ys: PImS8; const neg: PImS8; const pos: PImS8; count: Integer; flags: ImPlotErrorBarsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotErrorBars_S8PtrS8PtrS8PtrS8Ptr';

procedure ImPlot_PlotErrorBars_U8PtrU8PtrU8PtrU8Ptr(const label_id: PAnsiChar; const xs: PImU8; const ys: PImU8; const neg: PImU8; const pos: PImU8; count: Integer; flags: ImPlotErrorBarsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotErrorBars_U8PtrU8PtrU8PtrU8Ptr';

procedure ImPlot_PlotErrorBars_S16PtrS16PtrS16PtrS16Ptr(const label_id: PAnsiChar; const xs: PImS16; const ys: PImS16; const neg: PImS16; const pos: PImS16; count: Integer; flags: ImPlotErrorBarsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotErrorBars_S16PtrS16PtrS16PtrS16Ptr';

procedure ImPlot_PlotErrorBars_U16PtrU16PtrU16PtrU16Ptr(const label_id: PAnsiChar; const xs: PImU16; const ys: PImU16; const neg: PImU16; const pos: PImU16; count: Integer; flags: ImPlotErrorBarsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotErrorBars_U16PtrU16PtrU16PtrU16Ptr';

procedure ImPlot_PlotErrorBars_S32PtrS32PtrS32PtrS32Ptr(const label_id: PAnsiChar; const xs: PImS32; const ys: PImS32; const neg: PImS32; const pos: PImS32; count: Integer; flags: ImPlotErrorBarsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotErrorBars_S32PtrS32PtrS32PtrS32Ptr';

procedure ImPlot_PlotErrorBars_U32PtrU32PtrU32PtrU32Ptr(const label_id: PAnsiChar; const xs: PImU32; const ys: PImU32; const neg: PImU32; const pos: PImU32; count: Integer; flags: ImPlotErrorBarsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotErrorBars_U32PtrU32PtrU32PtrU32Ptr';

procedure ImPlot_PlotErrorBars_S64PtrS64PtrS64PtrS64Ptr(const label_id: PAnsiChar; const xs: PImS64; const ys: PImS64; const neg: PImS64; const pos: PImS64; count: Integer; flags: ImPlotErrorBarsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotErrorBars_S64PtrS64PtrS64PtrS64Ptr';

procedure ImPlot_PlotErrorBars_U64PtrU64PtrU64PtrU64Ptr(const label_id: PAnsiChar; const xs: PImU64; const ys: PImU64; const neg: PImU64; const pos: PImU64; count: Integer; flags: ImPlotErrorBarsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotErrorBars_U64PtrU64PtrU64PtrU64Ptr';

procedure ImPlot_PlotStems_FloatPtrInt(const label_id: PAnsiChar; const values: PSingle; count: Integer; ref: Double; scale: Double; start: Double; flags: ImPlotStemsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStems_FloatPtrInt';

procedure ImPlot_PlotStems_doublePtrInt(const label_id: PAnsiChar; const values: PDouble; count: Integer; ref: Double; scale: Double; start: Double; flags: ImPlotStemsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStems_doublePtrInt';

procedure ImPlot_PlotStems_S8PtrInt(const label_id: PAnsiChar; const values: PImS8; count: Integer; ref: Double; scale: Double; start: Double; flags: ImPlotStemsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStems_S8PtrInt';

procedure ImPlot_PlotStems_U8PtrInt(const label_id: PAnsiChar; const values: PImU8; count: Integer; ref: Double; scale: Double; start: Double; flags: ImPlotStemsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStems_U8PtrInt';

procedure ImPlot_PlotStems_S16PtrInt(const label_id: PAnsiChar; const values: PImS16; count: Integer; ref: Double; scale: Double; start: Double; flags: ImPlotStemsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStems_S16PtrInt';

procedure ImPlot_PlotStems_U16PtrInt(const label_id: PAnsiChar; const values: PImU16; count: Integer; ref: Double; scale: Double; start: Double; flags: ImPlotStemsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStems_U16PtrInt';

procedure ImPlot_PlotStems_S32PtrInt(const label_id: PAnsiChar; const values: PImS32; count: Integer; ref: Double; scale: Double; start: Double; flags: ImPlotStemsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStems_S32PtrInt';

procedure ImPlot_PlotStems_U32PtrInt(const label_id: PAnsiChar; const values: PImU32; count: Integer; ref: Double; scale: Double; start: Double; flags: ImPlotStemsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStems_U32PtrInt';

procedure ImPlot_PlotStems_S64PtrInt(const label_id: PAnsiChar; const values: PImS64; count: Integer; ref: Double; scale: Double; start: Double; flags: ImPlotStemsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStems_S64PtrInt';

procedure ImPlot_PlotStems_U64PtrInt(const label_id: PAnsiChar; const values: PImU64; count: Integer; ref: Double; scale: Double; start: Double; flags: ImPlotStemsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStems_U64PtrInt';

procedure ImPlot_PlotStems_FloatPtrFloatPtr(const label_id: PAnsiChar; const xs: PSingle; const ys: PSingle; count: Integer; ref: Double; flags: ImPlotStemsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStems_FloatPtrFloatPtr';

procedure ImPlot_PlotStems_doublePtrdoublePtr(const label_id: PAnsiChar; const xs: PDouble; const ys: PDouble; count: Integer; ref: Double; flags: ImPlotStemsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStems_doublePtrdoublePtr';

procedure ImPlot_PlotStems_S8PtrS8Ptr(const label_id: PAnsiChar; const xs: PImS8; const ys: PImS8; count: Integer; ref: Double; flags: ImPlotStemsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStems_S8PtrS8Ptr';

procedure ImPlot_PlotStems_U8PtrU8Ptr(const label_id: PAnsiChar; const xs: PImU8; const ys: PImU8; count: Integer; ref: Double; flags: ImPlotStemsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStems_U8PtrU8Ptr';

procedure ImPlot_PlotStems_S16PtrS16Ptr(const label_id: PAnsiChar; const xs: PImS16; const ys: PImS16; count: Integer; ref: Double; flags: ImPlotStemsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStems_S16PtrS16Ptr';

procedure ImPlot_PlotStems_U16PtrU16Ptr(const label_id: PAnsiChar; const xs: PImU16; const ys: PImU16; count: Integer; ref: Double; flags: ImPlotStemsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStems_U16PtrU16Ptr';

procedure ImPlot_PlotStems_S32PtrS32Ptr(const label_id: PAnsiChar; const xs: PImS32; const ys: PImS32; count: Integer; ref: Double; flags: ImPlotStemsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStems_S32PtrS32Ptr';

procedure ImPlot_PlotStems_U32PtrU32Ptr(const label_id: PAnsiChar; const xs: PImU32; const ys: PImU32; count: Integer; ref: Double; flags: ImPlotStemsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStems_U32PtrU32Ptr';

procedure ImPlot_PlotStems_S64PtrS64Ptr(const label_id: PAnsiChar; const xs: PImS64; const ys: PImS64; count: Integer; ref: Double; flags: ImPlotStemsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStems_S64PtrS64Ptr';

procedure ImPlot_PlotStems_U64PtrU64Ptr(const label_id: PAnsiChar; const xs: PImU64; const ys: PImU64; count: Integer; ref: Double; flags: ImPlotStemsFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotStems_U64PtrU64Ptr';

procedure ImPlot_PlotInfLines_FloatPtr(const label_id: PAnsiChar; const values: PSingle; count: Integer; flags: ImPlotInfLinesFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotInfLines_FloatPtr';

procedure ImPlot_PlotInfLines_doublePtr(const label_id: PAnsiChar; const values: PDouble; count: Integer; flags: ImPlotInfLinesFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotInfLines_doublePtr';

procedure ImPlot_PlotInfLines_S8Ptr(const label_id: PAnsiChar; const values: PImS8; count: Integer; flags: ImPlotInfLinesFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotInfLines_S8Ptr';

procedure ImPlot_PlotInfLines_U8Ptr(const label_id: PAnsiChar; const values: PImU8; count: Integer; flags: ImPlotInfLinesFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotInfLines_U8Ptr';

procedure ImPlot_PlotInfLines_S16Ptr(const label_id: PAnsiChar; const values: PImS16; count: Integer; flags: ImPlotInfLinesFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotInfLines_S16Ptr';

procedure ImPlot_PlotInfLines_U16Ptr(const label_id: PAnsiChar; const values: PImU16; count: Integer; flags: ImPlotInfLinesFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotInfLines_U16Ptr';

procedure ImPlot_PlotInfLines_S32Ptr(const label_id: PAnsiChar; const values: PImS32; count: Integer; flags: ImPlotInfLinesFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotInfLines_S32Ptr';

procedure ImPlot_PlotInfLines_U32Ptr(const label_id: PAnsiChar; const values: PImU32; count: Integer; flags: ImPlotInfLinesFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotInfLines_U32Ptr';

procedure ImPlot_PlotInfLines_S64Ptr(const label_id: PAnsiChar; const values: PImS64; count: Integer; flags: ImPlotInfLinesFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotInfLines_S64Ptr';

procedure ImPlot_PlotInfLines_U64Ptr(const label_id: PAnsiChar; const values: PImU64; count: Integer; flags: ImPlotInfLinesFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotInfLines_U64Ptr';

procedure ImPlot_PlotPieChart_FloatPtrPlotFormatter(label_ids: PPAnsiChar; const values: PSingle; count: Integer; x: Double; y: Double; radius: Double; fmt: ImPlotFormatter; fmt_data: Pointer; angle0: Double; flags: ImPlotPieChartFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotPieChart_FloatPtrPlotFormatter';

procedure ImPlot_PlotPieChart_doublePtrPlotFormatter(label_ids: PPAnsiChar; const values: PDouble; count: Integer; x: Double; y: Double; radius: Double; fmt: ImPlotFormatter; fmt_data: Pointer; angle0: Double; flags: ImPlotPieChartFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotPieChart_doublePtrPlotFormatter';

procedure ImPlot_PlotPieChart_S8PtrPlotFormatter(label_ids: PPAnsiChar; const values: PImS8; count: Integer; x: Double; y: Double; radius: Double; fmt: ImPlotFormatter; fmt_data: Pointer; angle0: Double; flags: ImPlotPieChartFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotPieChart_S8PtrPlotFormatter';

procedure ImPlot_PlotPieChart_U8PtrPlotFormatter(label_ids: PPAnsiChar; const values: PImU8; count: Integer; x: Double; y: Double; radius: Double; fmt: ImPlotFormatter; fmt_data: Pointer; angle0: Double; flags: ImPlotPieChartFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotPieChart_U8PtrPlotFormatter';

procedure ImPlot_PlotPieChart_S16PtrPlotFormatter(label_ids: PPAnsiChar; const values: PImS16; count: Integer; x: Double; y: Double; radius: Double; fmt: ImPlotFormatter; fmt_data: Pointer; angle0: Double; flags: ImPlotPieChartFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotPieChart_S16PtrPlotFormatter';

procedure ImPlot_PlotPieChart_U16PtrPlotFormatter(label_ids: PPAnsiChar; const values: PImU16; count: Integer; x: Double; y: Double; radius: Double; fmt: ImPlotFormatter; fmt_data: Pointer; angle0: Double; flags: ImPlotPieChartFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotPieChart_U16PtrPlotFormatter';

procedure ImPlot_PlotPieChart_S32PtrPlotFormatter(label_ids: PPAnsiChar; const values: PImS32; count: Integer; x: Double; y: Double; radius: Double; fmt: ImPlotFormatter; fmt_data: Pointer; angle0: Double; flags: ImPlotPieChartFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotPieChart_S32PtrPlotFormatter';

procedure ImPlot_PlotPieChart_U32PtrPlotFormatter(label_ids: PPAnsiChar; const values: PImU32; count: Integer; x: Double; y: Double; radius: Double; fmt: ImPlotFormatter; fmt_data: Pointer; angle0: Double; flags: ImPlotPieChartFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotPieChart_U32PtrPlotFormatter';

procedure ImPlot_PlotPieChart_S64PtrPlotFormatter(label_ids: PPAnsiChar; const values: PImS64; count: Integer; x: Double; y: Double; radius: Double; fmt: ImPlotFormatter; fmt_data: Pointer; angle0: Double; flags: ImPlotPieChartFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotPieChart_S64PtrPlotFormatter';

procedure ImPlot_PlotPieChart_U64PtrPlotFormatter(label_ids: PPAnsiChar; const values: PImU64; count: Integer; x: Double; y: Double; radius: Double; fmt: ImPlotFormatter; fmt_data: Pointer; angle0: Double; flags: ImPlotPieChartFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotPieChart_U64PtrPlotFormatter';

procedure ImPlot_PlotPieChart_FloatPtrStr(label_ids: PPAnsiChar; const values: PSingle; count: Integer; x: Double; y: Double; radius: Double; const label_fmt: PAnsiChar; angle0: Double; flags: ImPlotPieChartFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotPieChart_FloatPtrStr';

procedure ImPlot_PlotPieChart_doublePtrStr(label_ids: PPAnsiChar; const values: PDouble; count: Integer; x: Double; y: Double; radius: Double; const label_fmt: PAnsiChar; angle0: Double; flags: ImPlotPieChartFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotPieChart_doublePtrStr';

procedure ImPlot_PlotPieChart_S8PtrStr(label_ids: PPAnsiChar; const values: PImS8; count: Integer; x: Double; y: Double; radius: Double; const label_fmt: PAnsiChar; angle0: Double; flags: ImPlotPieChartFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotPieChart_S8PtrStr';

procedure ImPlot_PlotPieChart_U8PtrStr(label_ids: PPAnsiChar; const values: PImU8; count: Integer; x: Double; y: Double; radius: Double; const label_fmt: PAnsiChar; angle0: Double; flags: ImPlotPieChartFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotPieChart_U8PtrStr';

procedure ImPlot_PlotPieChart_S16PtrStr(label_ids: PPAnsiChar; const values: PImS16; count: Integer; x: Double; y: Double; radius: Double; const label_fmt: PAnsiChar; angle0: Double; flags: ImPlotPieChartFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotPieChart_S16PtrStr';

procedure ImPlot_PlotPieChart_U16PtrStr(label_ids: PPAnsiChar; const values: PImU16; count: Integer; x: Double; y: Double; radius: Double; const label_fmt: PAnsiChar; angle0: Double; flags: ImPlotPieChartFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotPieChart_U16PtrStr';

procedure ImPlot_PlotPieChart_S32PtrStr(label_ids: PPAnsiChar; const values: PImS32; count: Integer; x: Double; y: Double; radius: Double; const label_fmt: PAnsiChar; angle0: Double; flags: ImPlotPieChartFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotPieChart_S32PtrStr';

procedure ImPlot_PlotPieChart_U32PtrStr(label_ids: PPAnsiChar; const values: PImU32; count: Integer; x: Double; y: Double; radius: Double; const label_fmt: PAnsiChar; angle0: Double; flags: ImPlotPieChartFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotPieChart_U32PtrStr';

procedure ImPlot_PlotPieChart_S64PtrStr(label_ids: PPAnsiChar; const values: PImS64; count: Integer; x: Double; y: Double; radius: Double; const label_fmt: PAnsiChar; angle0: Double; flags: ImPlotPieChartFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotPieChart_S64PtrStr';

procedure ImPlot_PlotPieChart_U64PtrStr(label_ids: PPAnsiChar; const values: PImU64; count: Integer; x: Double; y: Double; radius: Double; const label_fmt: PAnsiChar; angle0: Double; flags: ImPlotPieChartFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotPieChart_U64PtrStr';

procedure ImPlot_PlotHeatmap_FloatPtr(const label_id: PAnsiChar; const values: PSingle; rows: Integer; cols: Integer; scale_min: Double; scale_max: Double; const label_fmt: PAnsiChar; bounds_min: ImPlotPoint; bounds_max: ImPlotPoint; flags: ImPlotHeatmapFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotHeatmap_FloatPtr';

procedure ImPlot_PlotHeatmap_doublePtr(const label_id: PAnsiChar; const values: PDouble; rows: Integer; cols: Integer; scale_min: Double; scale_max: Double; const label_fmt: PAnsiChar; bounds_min: ImPlotPoint; bounds_max: ImPlotPoint; flags: ImPlotHeatmapFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotHeatmap_doublePtr';

procedure ImPlot_PlotHeatmap_S8Ptr(const label_id: PAnsiChar; const values: PImS8; rows: Integer; cols: Integer; scale_min: Double; scale_max: Double; const label_fmt: PAnsiChar; bounds_min: ImPlotPoint; bounds_max: ImPlotPoint; flags: ImPlotHeatmapFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotHeatmap_S8Ptr';

procedure ImPlot_PlotHeatmap_U8Ptr(const label_id: PAnsiChar; const values: PImU8; rows: Integer; cols: Integer; scale_min: Double; scale_max: Double; const label_fmt: PAnsiChar; bounds_min: ImPlotPoint; bounds_max: ImPlotPoint; flags: ImPlotHeatmapFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotHeatmap_U8Ptr';

procedure ImPlot_PlotHeatmap_S16Ptr(const label_id: PAnsiChar; const values: PImS16; rows: Integer; cols: Integer; scale_min: Double; scale_max: Double; const label_fmt: PAnsiChar; bounds_min: ImPlotPoint; bounds_max: ImPlotPoint; flags: ImPlotHeatmapFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotHeatmap_S16Ptr';

procedure ImPlot_PlotHeatmap_U16Ptr(const label_id: PAnsiChar; const values: PImU16; rows: Integer; cols: Integer; scale_min: Double; scale_max: Double; const label_fmt: PAnsiChar; bounds_min: ImPlotPoint; bounds_max: ImPlotPoint; flags: ImPlotHeatmapFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotHeatmap_U16Ptr';

procedure ImPlot_PlotHeatmap_S32Ptr(const label_id: PAnsiChar; const values: PImS32; rows: Integer; cols: Integer; scale_min: Double; scale_max: Double; const label_fmt: PAnsiChar; bounds_min: ImPlotPoint; bounds_max: ImPlotPoint; flags: ImPlotHeatmapFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotHeatmap_S32Ptr';

procedure ImPlot_PlotHeatmap_U32Ptr(const label_id: PAnsiChar; const values: PImU32; rows: Integer; cols: Integer; scale_min: Double; scale_max: Double; const label_fmt: PAnsiChar; bounds_min: ImPlotPoint; bounds_max: ImPlotPoint; flags: ImPlotHeatmapFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotHeatmap_U32Ptr';

procedure ImPlot_PlotHeatmap_S64Ptr(const label_id: PAnsiChar; const values: PImS64; rows: Integer; cols: Integer; scale_min: Double; scale_max: Double; const label_fmt: PAnsiChar; bounds_min: ImPlotPoint; bounds_max: ImPlotPoint; flags: ImPlotHeatmapFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotHeatmap_S64Ptr';

procedure ImPlot_PlotHeatmap_U64Ptr(const label_id: PAnsiChar; const values: PImU64; rows: Integer; cols: Integer; scale_min: Double; scale_max: Double; const label_fmt: PAnsiChar; bounds_min: ImPlotPoint; bounds_max: ImPlotPoint; flags: ImPlotHeatmapFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotHeatmap_U64Ptr';

function ImPlot_PlotHistogram_FloatPtr(const label_id: PAnsiChar; const values: PSingle; count: Integer; bins: Integer; bar_scale: Double; range: ImPlotRange; flags: ImPlotHistogramFlags): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotHistogram_FloatPtr';

function ImPlot_PlotHistogram_doublePtr(const label_id: PAnsiChar; const values: PDouble; count: Integer; bins: Integer; bar_scale: Double; range: ImPlotRange; flags: ImPlotHistogramFlags): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotHistogram_doublePtr';

function ImPlot_PlotHistogram_S8Ptr(const label_id: PAnsiChar; const values: PImS8; count: Integer; bins: Integer; bar_scale: Double; range: ImPlotRange; flags: ImPlotHistogramFlags): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotHistogram_S8Ptr';

function ImPlot_PlotHistogram_U8Ptr(const label_id: PAnsiChar; const values: PImU8; count: Integer; bins: Integer; bar_scale: Double; range: ImPlotRange; flags: ImPlotHistogramFlags): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotHistogram_U8Ptr';

function ImPlot_PlotHistogram_S16Ptr(const label_id: PAnsiChar; const values: PImS16; count: Integer; bins: Integer; bar_scale: Double; range: ImPlotRange; flags: ImPlotHistogramFlags): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotHistogram_S16Ptr';

function ImPlot_PlotHistogram_U16Ptr(const label_id: PAnsiChar; const values: PImU16; count: Integer; bins: Integer; bar_scale: Double; range: ImPlotRange; flags: ImPlotHistogramFlags): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotHistogram_U16Ptr';

function ImPlot_PlotHistogram_S32Ptr(const label_id: PAnsiChar; const values: PImS32; count: Integer; bins: Integer; bar_scale: Double; range: ImPlotRange; flags: ImPlotHistogramFlags): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotHistogram_S32Ptr';

function ImPlot_PlotHistogram_U32Ptr(const label_id: PAnsiChar; const values: PImU32; count: Integer; bins: Integer; bar_scale: Double; range: ImPlotRange; flags: ImPlotHistogramFlags): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotHistogram_U32Ptr';

function ImPlot_PlotHistogram_S64Ptr(const label_id: PAnsiChar; const values: PImS64; count: Integer; bins: Integer; bar_scale: Double; range: ImPlotRange; flags: ImPlotHistogramFlags): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotHistogram_S64Ptr';

function ImPlot_PlotHistogram_U64Ptr(const label_id: PAnsiChar; const values: PImU64; count: Integer; bins: Integer; bar_scale: Double; range: ImPlotRange; flags: ImPlotHistogramFlags): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotHistogram_U64Ptr';

function ImPlot_PlotHistogram2D_FloatPtr(const label_id: PAnsiChar; const xs: PSingle; const ys: PSingle; count: Integer; x_bins: Integer; y_bins: Integer; range: ImPlotRect; flags: ImPlotHistogramFlags): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotHistogram2D_FloatPtr';

function ImPlot_PlotHistogram2D_doublePtr(const label_id: PAnsiChar; const xs: PDouble; const ys: PDouble; count: Integer; x_bins: Integer; y_bins: Integer; range: ImPlotRect; flags: ImPlotHistogramFlags): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotHistogram2D_doublePtr';

function ImPlot_PlotHistogram2D_S8Ptr(const label_id: PAnsiChar; const xs: PImS8; const ys: PImS8; count: Integer; x_bins: Integer; y_bins: Integer; range: ImPlotRect; flags: ImPlotHistogramFlags): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotHistogram2D_S8Ptr';

function ImPlot_PlotHistogram2D_U8Ptr(const label_id: PAnsiChar; const xs: PImU8; const ys: PImU8; count: Integer; x_bins: Integer; y_bins: Integer; range: ImPlotRect; flags: ImPlotHistogramFlags): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotHistogram2D_U8Ptr';

function ImPlot_PlotHistogram2D_S16Ptr(const label_id: PAnsiChar; const xs: PImS16; const ys: PImS16; count: Integer; x_bins: Integer; y_bins: Integer; range: ImPlotRect; flags: ImPlotHistogramFlags): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotHistogram2D_S16Ptr';

function ImPlot_PlotHistogram2D_U16Ptr(const label_id: PAnsiChar; const xs: PImU16; const ys: PImU16; count: Integer; x_bins: Integer; y_bins: Integer; range: ImPlotRect; flags: ImPlotHistogramFlags): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotHistogram2D_U16Ptr';

function ImPlot_PlotHistogram2D_S32Ptr(const label_id: PAnsiChar; const xs: PImS32; const ys: PImS32; count: Integer; x_bins: Integer; y_bins: Integer; range: ImPlotRect; flags: ImPlotHistogramFlags): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotHistogram2D_S32Ptr';

function ImPlot_PlotHistogram2D_U32Ptr(const label_id: PAnsiChar; const xs: PImU32; const ys: PImU32; count: Integer; x_bins: Integer; y_bins: Integer; range: ImPlotRect; flags: ImPlotHistogramFlags): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotHistogram2D_U32Ptr';

function ImPlot_PlotHistogram2D_S64Ptr(const label_id: PAnsiChar; const xs: PImS64; const ys: PImS64; count: Integer; x_bins: Integer; y_bins: Integer; range: ImPlotRect; flags: ImPlotHistogramFlags): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotHistogram2D_S64Ptr';

function ImPlot_PlotHistogram2D_U64Ptr(const label_id: PAnsiChar; const xs: PImU64; const ys: PImU64; count: Integer; x_bins: Integer; y_bins: Integer; range: ImPlotRect; flags: ImPlotHistogramFlags): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotHistogram2D_U64Ptr';

procedure ImPlot_PlotDigital_FloatPtr(const label_id: PAnsiChar; const xs: PSingle; const ys: PSingle; count: Integer; flags: ImPlotDigitalFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotDigital_FloatPtr';

procedure ImPlot_PlotDigital_doublePtr(const label_id: PAnsiChar; const xs: PDouble; const ys: PDouble; count: Integer; flags: ImPlotDigitalFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotDigital_doublePtr';

procedure ImPlot_PlotDigital_S8Ptr(const label_id: PAnsiChar; const xs: PImS8; const ys: PImS8; count: Integer; flags: ImPlotDigitalFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotDigital_S8Ptr';

procedure ImPlot_PlotDigital_U8Ptr(const label_id: PAnsiChar; const xs: PImU8; const ys: PImU8; count: Integer; flags: ImPlotDigitalFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotDigital_U8Ptr';

procedure ImPlot_PlotDigital_S16Ptr(const label_id: PAnsiChar; const xs: PImS16; const ys: PImS16; count: Integer; flags: ImPlotDigitalFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotDigital_S16Ptr';

procedure ImPlot_PlotDigital_U16Ptr(const label_id: PAnsiChar; const xs: PImU16; const ys: PImU16; count: Integer; flags: ImPlotDigitalFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotDigital_U16Ptr';

procedure ImPlot_PlotDigital_S32Ptr(const label_id: PAnsiChar; const xs: PImS32; const ys: PImS32; count: Integer; flags: ImPlotDigitalFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotDigital_S32Ptr';

procedure ImPlot_PlotDigital_U32Ptr(const label_id: PAnsiChar; const xs: PImU32; const ys: PImU32; count: Integer; flags: ImPlotDigitalFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotDigital_U32Ptr';

procedure ImPlot_PlotDigital_S64Ptr(const label_id: PAnsiChar; const xs: PImS64; const ys: PImS64; count: Integer; flags: ImPlotDigitalFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotDigital_S64Ptr';

procedure ImPlot_PlotDigital_U64Ptr(const label_id: PAnsiChar; const xs: PImU64; const ys: PImU64; count: Integer; flags: ImPlotDigitalFlags; offset: Integer; stride: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotDigital_U64Ptr';

procedure ImPlot_PlotDigitalG(const label_id: PAnsiChar; getter: ImPlotPoint_getter; data: Pointer; count: Integer; flags: ImPlotDigitalFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotDigitalG';

procedure ImPlot_PlotImage(const label_id: PAnsiChar; user_texture_id: ImTextureID; bounds_min: ImPlotPoint; bounds_max: ImPlotPoint; uv0: ImVec2; uv1: ImVec2; tint_col: ImVec4; flags: ImPlotImageFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotImage';

procedure ImPlot_PlotText(const text: PAnsiChar; x: Double; y: Double; pix_offset: ImVec2; flags: ImPlotTextFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotText';

procedure ImPlot_PlotDummy(const label_id: PAnsiChar; flags: ImPlotDummyFlags); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotDummy';

function ImPlot_DragPoint(id: Integer; x: PDouble; y: PDouble; col: ImVec4; size: Single; flags: ImPlotDragToolFlags; out_clicked: PBoolean; out_hovered: PBoolean; held: PBoolean): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_DragPoint';

function ImPlot_DragLineX(id: Integer; x: PDouble; col: ImVec4; thickness: Single; flags: ImPlotDragToolFlags; out_clicked: PBoolean; out_hovered: PBoolean; held: PBoolean): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_DragLineX';

function ImPlot_DragLineY(id: Integer; y: PDouble; col: ImVec4; thickness: Single; flags: ImPlotDragToolFlags; out_clicked: PBoolean; out_hovered: PBoolean; held: PBoolean): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_DragLineY';

function ImPlot_DragRect(id: Integer; x1: PDouble; y1: PDouble; x2: PDouble; y2: PDouble; col: ImVec4; flags: ImPlotDragToolFlags; out_clicked: PBoolean; out_hovered: PBoolean; held: PBoolean): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_DragRect';

procedure ImPlot_Annotation_Bool(x: Double; y: Double; col: ImVec4; pix_offset: ImVec2; clamp: Boolean; round: Boolean); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_Annotation_Bool';

procedure ImPlot_Annotation_Str(x: Double; y: Double; col: ImVec4; pix_offset: ImVec2; clamp: Boolean; const fmt: PAnsiChar) varargs; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_Annotation_Str';

procedure ImPlot_AnnotationV(x: Double; y: Double; col: ImVec4; pix_offset: ImVec2; clamp: Boolean; const fmt: PAnsiChar; args: Pointer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_AnnotationV';

procedure ImPlot_TagX_Bool(x: Double; col: ImVec4; round: Boolean); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_TagX_Bool';

procedure ImPlot_TagX_Str(x: Double; col: ImVec4; const fmt: PAnsiChar) varargs; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_TagX_Str';

procedure ImPlot_TagXV(x: Double; col: ImVec4; const fmt: PAnsiChar; args: Pointer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_TagXV';

procedure ImPlot_TagY_Bool(y: Double; col: ImVec4; round: Boolean); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_TagY_Bool';

procedure ImPlot_TagY_Str(y: Double; col: ImVec4; const fmt: PAnsiChar) varargs; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_TagY_Str';

procedure ImPlot_TagYV(y: Double; col: ImVec4; const fmt: PAnsiChar; args: Pointer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_TagYV';

procedure ImPlot_SetAxis(axis: ImAxis); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_SetAxis';

procedure ImPlot_SetAxes(x_axis: ImAxis; y_axis: ImAxis); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_SetAxes';

procedure ImPlot_PixelsToPlot_Vec2(pOut: PImPlotPoint; pix: ImVec2; x_axis: ImAxis; y_axis: ImAxis); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PixelsToPlot_Vec2';

procedure ImPlot_PixelsToPlot_Float(pOut: PImPlotPoint; x: Single; y: Single; x_axis: ImAxis; y_axis: ImAxis); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PixelsToPlot_Float';

procedure ImPlot_PlotToPixels_PlotPoInt(pOut: PImVec2; plt: ImPlotPoint; x_axis: ImAxis; y_axis: ImAxis); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotToPixels_PlotPoInt';

procedure ImPlot_PlotToPixels_double(pOut: PImVec2; x: Double; y: Double; x_axis: ImAxis; y_axis: ImAxis); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PlotToPixels_double';

procedure ImPlot_GetPlotPos(pOut: PImVec2); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_GetPlotPos';

procedure ImPlot_GetPlotSize(pOut: PImVec2); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_GetPlotSize';

procedure ImPlot_GetPlotMousePos(pOut: PImPlotPoint; x_axis: ImAxis; y_axis: ImAxis); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_GetPlotMousePos';

procedure ImPlot_GetPlotLimits(pOut: PImPlotRect; x_axis: ImAxis; y_axis: ImAxis); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_GetPlotLimits';

function ImPlot_IsPlotHovered(): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_IsPlotHovered';

function ImPlot_IsAxisHovered(axis: ImAxis): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_IsAxisHovered';

function ImPlot_IsSubplotsHovered(): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_IsSubplotsHovered';

function ImPlot_IsPlotSelected(): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_IsPlotSelected';

procedure ImPlot_GetPlotSelection(pOut: PImPlotRect; x_axis: ImAxis; y_axis: ImAxis); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_GetPlotSelection';

procedure ImPlot_CancelPlotSelection(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_CancelPlotSelection';

procedure ImPlot_HideNextItem(hidden: Boolean; cond: ImPlotCond); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_HideNextItem';

function ImPlot_BeginAlignedPlots(const group_id: PAnsiChar; vertical: Boolean): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_BeginAlignedPlots';

procedure ImPlot_EndAlignedPlots(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_EndAlignedPlots';

function ImPlot_BeginLegendPopup(const label_id: PAnsiChar; mouse_button: ImGuiMouseButton): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_BeginLegendPopup';

procedure ImPlot_EndLegendPopup(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_EndLegendPopup';

function ImPlot_IsLegendEntryHovered(const label_id: PAnsiChar): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_IsLegendEntryHovered';

function ImPlot_BeginDragDropTargetPlot(): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_BeginDragDropTargetPlot';

function ImPlot_BeginDragDropTargetAxis(axis: ImAxis): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_BeginDragDropTargetAxis';

function ImPlot_BeginDragDropTargetLegend(): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_BeginDragDropTargetLegend';

procedure ImPlot_EndDragDropTarget(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_EndDragDropTarget';

function ImPlot_BeginDragDropSourcePlot(flags: ImGuiDragDropFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_BeginDragDropSourcePlot';

function ImPlot_BeginDragDropSourceAxis(axis: ImAxis; flags: ImGuiDragDropFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_BeginDragDropSourceAxis';

function ImPlot_BeginDragDropSourceItem(const label_id: PAnsiChar; flags: ImGuiDragDropFlags): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_BeginDragDropSourceItem';

procedure ImPlot_EndDragDropSource(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_EndDragDropSource';

function ImPlot_GetStyle(): PImPlotStyle; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_GetStyle';

procedure ImPlot_StyleColorsAuto(dst: PImPlotStyle); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_StyleColorsAuto';

procedure ImPlot_StyleColorsClassic(dst: PImPlotStyle); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_StyleColorsClassic';

procedure ImPlot_StyleColorsDark(dst: PImPlotStyle); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_StyleColorsDark';

procedure ImPlot_StyleColorsLight(dst: PImPlotStyle); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_StyleColorsLight';

procedure ImPlot_PushStyleColor_U32(idx: ImPlotCol; col: ImU32); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PushStyleColor_U32';

procedure ImPlot_PushStyleColor_Vec4(idx: ImPlotCol; col: ImVec4); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PushStyleColor_Vec4';

procedure ImPlot_PopStyleColor(count: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PopStyleColor';

procedure ImPlot_PushStyleVar_Float(idx: ImPlotStyleVar; val: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PushStyleVar_Float';

procedure ImPlot_PushStyleVar_Int(idx: ImPlotStyleVar; val: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PushStyleVar_Int';

procedure ImPlot_PushStyleVar_Vec2(idx: ImPlotStyleVar; val: ImVec2); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PushStyleVar_Vec2';

procedure ImPlot_PopStyleVar(count: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PopStyleVar';

procedure ImPlot_SetNextLineStyle(col: ImVec4; weight: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_SetNextLineStyle';

procedure ImPlot_SetNextFillStyle(col: ImVec4; alpha_mod: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_SetNextFillStyle';

procedure ImPlot_SetNextMarkerStyle(marker: ImPlotMarker; size: Single; fill: ImVec4; weight: Single; outline: ImVec4); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_SetNextMarkerStyle';

procedure ImPlot_SetNextErrorBarStyle(col: ImVec4; size: Single; weight: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_SetNextErrorBarStyle';

procedure ImPlot_GetLastItemColor(pOut: PImVec4); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_GetLastItemColor';

function ImPlot_GetStyleColorName(idx: ImPlotCol): PAnsiChar; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_GetStyleColorName';

function ImPlot_GetMarkerName(idx: ImPlotMarker): PAnsiChar; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_GetMarkerName';

function ImPlot_AddColormap_Vec4Ptr(const name: PAnsiChar; const cols: PImVec4; size: Integer; qual: Boolean): ImPlotColormap; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_AddColormap_Vec4Ptr';

function ImPlot_AddColormap_U32Ptr(const name: PAnsiChar; const cols: PImU32; size: Integer; qual: Boolean): ImPlotColormap; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_AddColormap_U32Ptr';

function ImPlot_GetColormapCount(): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_GetColormapCount';

function ImPlot_GetColormapName(cmap: ImPlotColormap): PAnsiChar; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_GetColormapName';

function ImPlot_GetColormapIndex(const name: PAnsiChar): ImPlotColormap; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_GetColormapIndex';

procedure ImPlot_PushColormap_PlotColormap(cmap: ImPlotColormap); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PushColormap_PlotColormap';

procedure ImPlot_PushColormap_Str(const name: PAnsiChar); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PushColormap_Str';

procedure ImPlot_PopColormap(count: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PopColormap';

procedure ImPlot_NextColormapColor(pOut: PImVec4); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_NextColormapColor';

function ImPlot_GetColormapSize(cmap: ImPlotColormap): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_GetColormapSize';

procedure ImPlot_GetColormapColor(pOut: PImVec4; idx: Integer; cmap: ImPlotColormap); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_GetColormapColor';

procedure ImPlot_SampleColormap(pOut: PImVec4; t: Single; cmap: ImPlotColormap); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_SampleColormap';

procedure ImPlot_ColormapScale(const label_: PAnsiChar; scale_min: Double; scale_max: Double; size: ImVec2; const format: PAnsiChar; flags: ImPlotColormapScaleFlags; cmap: ImPlotColormap); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ColormapScale';

function ImPlot_ColormapSlider(const label_: PAnsiChar; t: PSingle; out_: PImVec4; const format: PAnsiChar; cmap: ImPlotColormap): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ColormapSlider';

function ImPlot_ColormapButton(const label_: PAnsiChar; size: ImVec2; cmap: ImPlotColormap): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ColormapButton';

procedure ImPlot_BustColorCache(const plot_title_id: PAnsiChar); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_BustColorCache';

function ImPlot_GetInputMap(): PImPlotInputMap; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_GetInputMap';

procedure ImPlot_MapInputDefault(dst: PImPlotInputMap); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_MapInputDefault';

procedure ImPlot_MapInputReverse(dst: PImPlotInputMap); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_MapInputReverse';

procedure ImPlot_ItemIcon_Vec4(col: ImVec4); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ItemIcon_Vec4';

procedure ImPlot_ItemIcon_U32(col: ImU32); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ItemIcon_U32';

procedure ImPlot_ColormapIcon(cmap: ImPlotColormap); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ColormapIcon';

function ImPlot_GetPlotDrawList(): PImDrawList; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_GetPlotDrawList';

procedure ImPlot_PushPlotClipRect(expand: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PushPlotClipRect';

procedure ImPlot_PopPlotClipRect(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_PopPlotClipRect';

function ImPlot_ShowStyleSelector(const label_: PAnsiChar): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ShowStyleSelector';

function ImPlot_ShowColormapSelector(const label_: PAnsiChar): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ShowColormapSelector';

function ImPlot_ShowInputMapSelector(const label_: PAnsiChar): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ShowInputMapSelector';

procedure ImPlot_ShowStyleEditor(ref: PImPlotStyle); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ShowStyleEditor';

procedure ImPlot_ShowUserGuide(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ShowUserGuide';

procedure ImPlot_ShowMetricsWindow(p_popen: PBoolean); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ShowMetricsWindow';

function ImPlot_ImLog10_Float(x: Single): Single; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImLog10_Float';

function ImPlot_ImLog10_double(x: Double): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImLog10_double';

function ImPlot_ImSinh_Float(x: Single): Single; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImSinh_Float';

function ImPlot_ImSinh_double(x: Double): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImSinh_double';

function ImPlot_ImAsinh_Float(x: Single): Single; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImAsinh_Float';

function ImPlot_ImAsinh_double(x: Double): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImAsinh_double';

function ImPlot_ImRemap_Float(x: Single; x0: Single; x1: Single; y0: Single; y1: Single): Single; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImRemap_Float';

function ImPlot_ImRemap_double(x: Double; x0: Double; x1: Double; y0: Double; y1: Double): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImRemap_double';

function ImPlot_ImRemap_S8(x: ImS8; x0: ImS8; x1: ImS8; y0: ImS8; y1: ImS8): ImS8; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImRemap_S8';

function ImPlot_ImRemap_U8(x: ImU8; x0: ImU8; x1: ImU8; y0: ImU8; y1: ImU8): ImU8; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImRemap_U8';

function ImPlot_ImRemap_S16(x: ImS16; x0: ImS16; x1: ImS16; y0: ImS16; y1: ImS16): ImS16; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImRemap_S16';

function ImPlot_ImRemap_U16(x: ImU16; x0: ImU16; x1: ImU16; y0: ImU16; y1: ImU16): ImU16; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImRemap_U16';

function ImPlot_ImRemap_S32(x: ImS32; x0: ImS32; x1: ImS32; y0: ImS32; y1: ImS32): ImS32; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImRemap_S32';

function ImPlot_ImRemap_U32(x: ImU32; x0: ImU32; x1: ImU32; y0: ImU32; y1: ImU32): ImU32; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImRemap_U32';

function ImPlot_ImRemap_S64(x: ImS64; x0: ImS64; x1: ImS64; y0: ImS64; y1: ImS64): ImS64; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImRemap_S64';

function ImPlot_ImRemap_U64(x: ImU64; x0: ImU64; x1: ImU64; y0: ImU64; y1: ImU64): ImU64; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImRemap_U64';

function ImPlot_ImRemap01_Float(x: Single; x0: Single; x1: Single): Single; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImRemap01_Float';

function ImPlot_ImRemap01_double(x: Double; x0: Double; x1: Double): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImRemap01_double';

function ImPlot_ImRemap01_S8(x: ImS8; x0: ImS8; x1: ImS8): ImS8; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImRemap01_S8';

function ImPlot_ImRemap01_U8(x: ImU8; x0: ImU8; x1: ImU8): ImU8; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImRemap01_U8';

function ImPlot_ImRemap01_S16(x: ImS16; x0: ImS16; x1: ImS16): ImS16; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImRemap01_S16';

function ImPlot_ImRemap01_U16(x: ImU16; x0: ImU16; x1: ImU16): ImU16; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImRemap01_U16';

function ImPlot_ImRemap01_S32(x: ImS32; x0: ImS32; x1: ImS32): ImS32; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImRemap01_S32';

function ImPlot_ImRemap01_U32(x: ImU32; x0: ImU32; x1: ImU32): ImU32; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImRemap01_U32';

function ImPlot_ImRemap01_S64(x: ImS64; x0: ImS64; x1: ImS64): ImS64; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImRemap01_S64';

function ImPlot_ImRemap01_U64(x: ImU64; x0: ImU64; x1: ImU64): ImU64; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImRemap01_U64';

function ImPlot_ImPosMod(l: Integer; r: Integer): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImPosMod';

function ImPlot_ImNan(val: Double): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImNan';

function ImPlot_ImNanOrInf(val: Double): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImNanOrInf';

function ImPlot_ImConstrainNan(val: Double): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImConstrainNan';

function ImPlot_ImConstrainInf(val: Double): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImConstrainInf';

function ImPlot_ImConstrainLog(val: Double): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImConstrainLog';

function ImPlot_ImConstrainTime(val: Double): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImConstrainTime';

function ImPlot_ImAlmostEqual(v1: Double; v2: Double; ulp: Integer): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImAlmostEqual';

function ImPlot_ImMinArray_FloatPtr(const values: PSingle; count: Integer): Single; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMinArray_FloatPtr';

function ImPlot_ImMinArray_doublePtr(const values: PDouble; count: Integer): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMinArray_doublePtr';

function ImPlot_ImMinArray_S8Ptr(const values: PImS8; count: Integer): ImS8; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMinArray_S8Ptr';

function ImPlot_ImMinArray_U8Ptr(const values: PImU8; count: Integer): ImU8; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMinArray_U8Ptr';

function ImPlot_ImMinArray_S16Ptr(const values: PImS16; count: Integer): ImS16; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMinArray_S16Ptr';

function ImPlot_ImMinArray_U16Ptr(const values: PImU16; count: Integer): ImU16; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMinArray_U16Ptr';

function ImPlot_ImMinArray_S32Ptr(const values: PImS32; count: Integer): ImS32; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMinArray_S32Ptr';

function ImPlot_ImMinArray_U32Ptr(const values: PImU32; count: Integer): ImU32; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMinArray_U32Ptr';

function ImPlot_ImMinArray_S64Ptr(const values: PImS64; count: Integer): ImS64; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMinArray_S64Ptr';

function ImPlot_ImMinArray_U64Ptr(const values: PImU64; count: Integer): ImU64; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMinArray_U64Ptr';

function ImPlot_ImMaxArray_FloatPtr(const values: PSingle; count: Integer): Single; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMaxArray_FloatPtr';

function ImPlot_ImMaxArray_doublePtr(const values: PDouble; count: Integer): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMaxArray_doublePtr';

function ImPlot_ImMaxArray_S8Ptr(const values: PImS8; count: Integer): ImS8; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMaxArray_S8Ptr';

function ImPlot_ImMaxArray_U8Ptr(const values: PImU8; count: Integer): ImU8; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMaxArray_U8Ptr';

function ImPlot_ImMaxArray_S16Ptr(const values: PImS16; count: Integer): ImS16; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMaxArray_S16Ptr';

function ImPlot_ImMaxArray_U16Ptr(const values: PImU16; count: Integer): ImU16; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMaxArray_U16Ptr';

function ImPlot_ImMaxArray_S32Ptr(const values: PImS32; count: Integer): ImS32; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMaxArray_S32Ptr';

function ImPlot_ImMaxArray_U32Ptr(const values: PImU32; count: Integer): ImU32; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMaxArray_U32Ptr';

function ImPlot_ImMaxArray_S64Ptr(const values: PImS64; count: Integer): ImS64; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMaxArray_S64Ptr';

function ImPlot_ImMaxArray_U64Ptr(const values: PImU64; count: Integer): ImU64; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMaxArray_U64Ptr';

procedure ImPlot_ImMinMaxArray_FloatPtr(const values: PSingle; count: Integer; min_out: PSingle; max_out: PSingle); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMinMaxArray_FloatPtr';

procedure ImPlot_ImMinMaxArray_doublePtr(const values: PDouble; count: Integer; min_out: PDouble; max_out: PDouble); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMinMaxArray_doublePtr';

procedure ImPlot_ImMinMaxArray_S8Ptr(const values: PImS8; count: Integer; min_out: PImS8; max_out: PImS8); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMinMaxArray_S8Ptr';

procedure ImPlot_ImMinMaxArray_U8Ptr(const values: PImU8; count: Integer; min_out: PImU8; max_out: PImU8); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMinMaxArray_U8Ptr';

procedure ImPlot_ImMinMaxArray_S16Ptr(const values: PImS16; count: Integer; min_out: PImS16; max_out: PImS16); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMinMaxArray_S16Ptr';

procedure ImPlot_ImMinMaxArray_U16Ptr(const values: PImU16; count: Integer; min_out: PImU16; max_out: PImU16); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMinMaxArray_U16Ptr';

procedure ImPlot_ImMinMaxArray_S32Ptr(const values: PImS32; count: Integer; min_out: PImS32; max_out: PImS32); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMinMaxArray_S32Ptr';

procedure ImPlot_ImMinMaxArray_U32Ptr(const values: PImU32; count: Integer; min_out: PImU32; max_out: PImU32); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMinMaxArray_U32Ptr';

procedure ImPlot_ImMinMaxArray_S64Ptr(const values: PImS64; count: Integer; min_out: PImS64; max_out: PImS64); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMinMaxArray_S64Ptr';

procedure ImPlot_ImMinMaxArray_U64Ptr(const values: PImU64; count: Integer; min_out: PImU64; max_out: PImU64); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMinMaxArray_U64Ptr';

function ImPlot_ImSum_FloatPtr(const values: PSingle; count: Integer): Single; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImSum_FloatPtr';

function ImPlot_ImSum_doublePtr(const values: PDouble; count: Integer): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImSum_doublePtr';

function ImPlot_ImSum_S8Ptr(const values: PImS8; count: Integer): ImS8; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImSum_S8Ptr';

function ImPlot_ImSum_U8Ptr(const values: PImU8; count: Integer): ImU8; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImSum_U8Ptr';

function ImPlot_ImSum_S16Ptr(const values: PImS16; count: Integer): ImS16; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImSum_S16Ptr';

function ImPlot_ImSum_U16Ptr(const values: PImU16; count: Integer): ImU16; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImSum_U16Ptr';

function ImPlot_ImSum_S32Ptr(const values: PImS32; count: Integer): ImS32; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImSum_S32Ptr';

function ImPlot_ImSum_U32Ptr(const values: PImU32; count: Integer): ImU32; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImSum_U32Ptr';

function ImPlot_ImSum_S64Ptr(const values: PImS64; count: Integer): ImS64; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImSum_S64Ptr';

function ImPlot_ImSum_U64Ptr(const values: PImU64; count: Integer): ImU64; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImSum_U64Ptr';

function ImPlot_ImMean_FloatPtr(const values: PSingle; count: Integer): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMean_FloatPtr';

function ImPlot_ImMean_doublePtr(const values: PDouble; count: Integer): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMean_doublePtr';

function ImPlot_ImMean_S8Ptr(const values: PImS8; count: Integer): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMean_S8Ptr';

function ImPlot_ImMean_U8Ptr(const values: PImU8; count: Integer): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMean_U8Ptr';

function ImPlot_ImMean_S16Ptr(const values: PImS16; count: Integer): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMean_S16Ptr';

function ImPlot_ImMean_U16Ptr(const values: PImU16; count: Integer): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMean_U16Ptr';

function ImPlot_ImMean_S32Ptr(const values: PImS32; count: Integer): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMean_S32Ptr';

function ImPlot_ImMean_U32Ptr(const values: PImU32; count: Integer): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMean_U32Ptr';

function ImPlot_ImMean_S64Ptr(const values: PImS64; count: Integer): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMean_S64Ptr';

function ImPlot_ImMean_U64Ptr(const values: PImU64; count: Integer): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMean_U64Ptr';

function ImPlot_ImStdDev_FloatPtr(const values: PSingle; count: Integer): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImStdDev_FloatPtr';

function ImPlot_ImStdDev_doublePtr(const values: PDouble; count: Integer): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImStdDev_doublePtr';

function ImPlot_ImStdDev_S8Ptr(const values: PImS8; count: Integer): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImStdDev_S8Ptr';

function ImPlot_ImStdDev_U8Ptr(const values: PImU8; count: Integer): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImStdDev_U8Ptr';

function ImPlot_ImStdDev_S16Ptr(const values: PImS16; count: Integer): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImStdDev_S16Ptr';

function ImPlot_ImStdDev_U16Ptr(const values: PImU16; count: Integer): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImStdDev_U16Ptr';

function ImPlot_ImStdDev_S32Ptr(const values: PImS32; count: Integer): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImStdDev_S32Ptr';

function ImPlot_ImStdDev_U32Ptr(const values: PImU32; count: Integer): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImStdDev_U32Ptr';

function ImPlot_ImStdDev_S64Ptr(const values: PImS64; count: Integer): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImStdDev_S64Ptr';

function ImPlot_ImStdDev_U64Ptr(const values: PImU64; count: Integer): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImStdDev_U64Ptr';

function ImPlot_ImMixU32(a: ImU32; b: ImU32; s: ImU32): ImU32; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImMixU32';

function ImPlot_ImLerpU32(const colors: PImU32; size: Integer; t: Single): ImU32; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImLerpU32';

function ImPlot_ImAlphaU32(col: ImU32; alpha: Single): ImU32; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImAlphaU32';

function ImPlot_ImOverlaps_Float(min_a: Single; max_a: Single; min_b: Single; max_b: Single): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImOverlaps_Float';

function ImPlot_ImOverlaps_double(min_a: Double; max_a: Double; min_b: Double; max_b: Double): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImOverlaps_double';

function ImPlot_ImOverlaps_S8(min_a: ImS8; max_a: ImS8; min_b: ImS8; max_b: ImS8): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImOverlaps_S8';

function ImPlot_ImOverlaps_U8(min_a: ImU8; max_a: ImU8; min_b: ImU8; max_b: ImU8): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImOverlaps_U8';

function ImPlot_ImOverlaps_S16(min_a: ImS16; max_a: ImS16; min_b: ImS16; max_b: ImS16): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImOverlaps_S16';

function ImPlot_ImOverlaps_U16(min_a: ImU16; max_a: ImU16; min_b: ImU16; max_b: ImU16): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImOverlaps_U16';

function ImPlot_ImOverlaps_S32(min_a: ImS32; max_a: ImS32; min_b: ImS32; max_b: ImS32): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImOverlaps_S32';

function ImPlot_ImOverlaps_U32(min_a: ImU32; max_a: ImU32; min_b: ImU32; max_b: ImU32): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImOverlaps_U32';

function ImPlot_ImOverlaps_S64(min_a: ImS64; max_a: ImS64; min_b: ImS64; max_b: ImS64): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImOverlaps_S64';

function ImPlot_ImOverlaps_U64(min_a: ImU64; max_a: ImU64; min_b: ImU64; max_b: ImU64): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImOverlaps_U64';

function ImPlotDateTimeSpec_ImPlotDateTimeSpec_Nil(): PImPlotDateTimeSpec; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotDateTimeSpec_ImPlotDateTimeSpec_Nil';

procedure ImPlotDateTimeSpec_destroy(self: PImPlotDateTimeSpec); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotDateTimeSpec_destroy';

function ImPlotDateTimeSpec_ImPlotDateTimeSpec_PlotDateFmt(date_fmt: ImPlotDateFmt; time_fmt: ImPlotTimeFmt; use_24_hr_clk: Boolean; use_iso_8601: Boolean): PImPlotDateTimeSpec; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotDateTimeSpec_ImPlotDateTimeSpec_PlotDateFmt';

function ImPlotTime_ImPlotTime_Nil(): PImPlotTime; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotTime_ImPlotTime_Nil';

procedure ImPlotTime_destroy(self: PImPlotTime); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotTime_destroy';

function ImPlotTime_ImPlotTime_time_t(s: Longint; us: Integer): PImPlotTime; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotTime_ImPlotTime_time_t';

procedure ImPlotTime_RollOver(self: PImPlotTime); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotTime_RollOver';

function ImPlotTime_ToDouble(self: PImPlotTime): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotTime_ToDouble';

procedure ImPlotTime_FromDouble(pOut: PImPlotTime; t: Double); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotTime_FromDouble';

function ImPlotColormapData_ImPlotColormapData(): PImPlotColormapData; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotColormapData_ImPlotColormapData';

procedure ImPlotColormapData_destroy(self: PImPlotColormapData); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotColormapData_destroy';

function ImPlotColormapData_Append(self: PImPlotColormapData; const name: PAnsiChar; const keys: PImU32; count: Integer; qual: Boolean): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotColormapData_Append';

procedure ImPlotColormapData__AppendTable(self: PImPlotColormapData; cmap: ImPlotColormap); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotColormapData__AppendTable';

procedure ImPlotColormapData_RebuildTables(self: PImPlotColormapData); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotColormapData_RebuildTables';

function ImPlotColormapData_IsQual(self: PImPlotColormapData; cmap: ImPlotColormap): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotColormapData_IsQual';

function ImPlotColormapData_GetName(self: PImPlotColormapData; cmap: ImPlotColormap): PAnsiChar; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotColormapData_GetName';

function ImPlotColormapData_GetIndex(self: PImPlotColormapData; const name: PAnsiChar): ImPlotColormap; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotColormapData_GetIndex';

function ImPlotColormapData_GetKeys(self: PImPlotColormapData; cmap: ImPlotColormap): PImU32; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotColormapData_GetKeys';

function ImPlotColormapData_GetKeyCount(self: PImPlotColormapData; cmap: ImPlotColormap): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotColormapData_GetKeyCount';

function ImPlotColormapData_GetKeyColor(self: PImPlotColormapData; cmap: ImPlotColormap; idx: Integer): ImU32; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotColormapData_GetKeyColor';

procedure ImPlotColormapData_SetKeyColor(self: PImPlotColormapData; cmap: ImPlotColormap; idx: Integer; value: ImU32); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotColormapData_SetKeyColor';

function ImPlotColormapData_GetTable(self: PImPlotColormapData; cmap: ImPlotColormap): PImU32; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotColormapData_GetTable';

function ImPlotColormapData_GetTableSize(self: PImPlotColormapData; cmap: ImPlotColormap): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotColormapData_GetTableSize';

function ImPlotColormapData_GetTableColor(self: PImPlotColormapData; cmap: ImPlotColormap; idx: Integer): ImU32; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotColormapData_GetTableColor';

function ImPlotColormapData_LerpTable(self: PImPlotColormapData; cmap: ImPlotColormap; t: Single): ImU32; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotColormapData_LerpTable';

function ImPlotPointError_ImPlotPointError(x: Double; y: Double; neg: Double; pos: Double): PImPlotPointError; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotPointError_ImPlotPointError';

procedure ImPlotPointError_destroy(self: PImPlotPointError); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotPointError_destroy';

function ImPlotAnnotation_ImPlotAnnotation(): PImPlotAnnotation; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAnnotation_ImPlotAnnotation';

procedure ImPlotAnnotation_destroy(self: PImPlotAnnotation); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAnnotation_destroy';

function ImPlotAnnotationCollection_ImPlotAnnotationCollection(): PImPlotAnnotationCollection; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAnnotationCollection_ImPlotAnnotationCollection';

procedure ImPlotAnnotationCollection_destroy(self: PImPlotAnnotationCollection); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAnnotationCollection_destroy';

procedure ImPlotAnnotationCollection_AppendV(self: PImPlotAnnotationCollection; pos: ImVec2; off: ImVec2; bg: ImU32; fg: ImU32; clamp: Boolean; const fmt: PAnsiChar; args: Pointer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAnnotationCollection_AppendV';

procedure ImPlotAnnotationCollection_Append(self: PImPlotAnnotationCollection; pos: ImVec2; off: ImVec2; bg: ImU32; fg: ImU32; clamp: Boolean; const fmt: PAnsiChar) varargs; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAnnotationCollection_Append';

function ImPlotAnnotationCollection_GetText(self: PImPlotAnnotationCollection; idx: Integer): PAnsiChar; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAnnotationCollection_GetText';

procedure ImPlotAnnotationCollection_Reset(self: PImPlotAnnotationCollection); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAnnotationCollection_Reset';

function ImPlotTagCollection_ImPlotTagCollection(): PImPlotTagCollection; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotTagCollection_ImPlotTagCollection';

procedure ImPlotTagCollection_destroy(self: PImPlotTagCollection); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotTagCollection_destroy';

procedure ImPlotTagCollection_AppendV(self: PImPlotTagCollection; axis: ImAxis; value: Double; bg: ImU32; fg: ImU32; const fmt: PAnsiChar; args: Pointer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotTagCollection_AppendV';

procedure ImPlotTagCollection_Append(self: PImPlotTagCollection; axis: ImAxis; value: Double; bg: ImU32; fg: ImU32; const fmt: PAnsiChar) varargs; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotTagCollection_Append';

function ImPlotTagCollection_GetText(self: PImPlotTagCollection; idx: Integer): PAnsiChar; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotTagCollection_GetText';

procedure ImPlotTagCollection_Reset(self: PImPlotTagCollection); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotTagCollection_Reset';

function ImPlotTick_ImPlotTick(value: Double; major: Boolean; level: Integer; show_label: Boolean): PImPlotTick; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotTick_ImPlotTick';

procedure ImPlotTick_destroy(self: PImPlotTick); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotTick_destroy';

function ImPlotTicker_ImPlotTicker(): PImPlotTicker; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotTicker_ImPlotTicker';

procedure ImPlotTicker_destroy(self: PImPlotTicker); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotTicker_destroy';

function ImPlotTicker_AddTick_doubleStr(self: PImPlotTicker; value: Double; major: Boolean; level: Integer; show_label: Boolean; const label_: PAnsiChar): PImPlotTick; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotTicker_AddTick_doubleStr';

function ImPlotTicker_AddTick_doublePlotFormatter(self: PImPlotTicker; value: Double; major: Boolean; level: Integer; show_label: Boolean; formatter: ImPlotFormatter; data: Pointer): PImPlotTick; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotTicker_AddTick_doublePlotFormatter';

function ImPlotTicker_AddTick_PlotTick(self: PImPlotTicker; tick: ImPlotTick): PImPlotTick; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotTicker_AddTick_PlotTick';

function ImPlotTicker_GetText_Int(self: PImPlotTicker; idx: Integer): PAnsiChar; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotTicker_GetText_Int';

function ImPlotTicker_GetText_PlotTick(self: PImPlotTicker; const tick: ImPlotTick): PAnsiChar; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotTicker_GetText_PlotTick';

procedure ImPlotTicker_OverrideSizeLate(self: PImPlotTicker; size: ImVec2); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotTicker_OverrideSizeLate';

procedure ImPlotTicker_Reset(self: PImPlotTicker); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotTicker_Reset';

function ImPlotTicker_TickCount(self: PImPlotTicker): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotTicker_TickCount';

function ImPlotAxis_ImPlotAxis(): PImPlotAxis; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_ImPlotAxis';

procedure ImPlotAxis_destroy(self: PImPlotAxis); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_destroy';

procedure ImPlotAxis_Reset(self: PImPlotAxis); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_Reset';

function ImPlotAxis_SetMin(self: PImPlotAxis; _min: Double; force: Boolean): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_SetMin';

function ImPlotAxis_SetMax(self: PImPlotAxis; _max: Double; force: Boolean): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_SetMax';

procedure ImPlotAxis_SetRange_double(self: PImPlotAxis; v1: Double; v2: Double); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_SetRange_double';

procedure ImPlotAxis_SetRange_PlotRange(self: PImPlotAxis; range: ImPlotRange); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_SetRange_PlotRange';

procedure ImPlotAxis_SetAspect(self: PImPlotAxis; unit_per_pix: Double); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_SetAspect';

function ImPlotAxis_PixelSize(self: PImPlotAxis): Single; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_PixelSize';

function ImPlotAxis_GetAspect(self: PImPlotAxis): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_GetAspect';

procedure ImPlotAxis_Constrain(self: PImPlotAxis); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_Constrain';

procedure ImPlotAxis_UpdateTransformCache(self: PImPlotAxis); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_UpdateTransformCache';

function ImPlotAxis_PlotToPixels(self: PImPlotAxis; plt: Double): Single; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_PlotToPixels';

function ImPlotAxis_PixelsToPlot(self: PImPlotAxis; pix: Single): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_PixelsToPlot';

procedure ImPlotAxis_ExtendFit(self: PImPlotAxis; v: Double); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_ExtendFit';

procedure ImPlotAxis_ExtendFitWith(self: PImPlotAxis; alt: PImPlotAxis; v: Double; v_alt: Double); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_ExtendFitWith';

procedure ImPlotAxis_ApplyFit(self: PImPlotAxis; padding: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_ApplyFit';

function ImPlotAxis_HasLabel(self: PImPlotAxis): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_HasLabel';

function ImPlotAxis_HasGridLines(self: PImPlotAxis): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_HasGridLines';

function ImPlotAxis_HasTickLabels(self: PImPlotAxis): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_HasTickLabels';

function ImPlotAxis_HasTickMarks(self: PImPlotAxis): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_HasTickMarks';

function ImPlotAxis_WillRender(self: PImPlotAxis): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_WillRender';

function ImPlotAxis_IsOpposite(self: PImPlotAxis): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_IsOpposite';

function ImPlotAxis_IsInverted(self: PImPlotAxis): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_IsInverted';

function ImPlotAxis_IsForeground(self: PImPlotAxis): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_IsForeground';

function ImPlotAxis_IsAutoFitting(self: PImPlotAxis): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_IsAutoFitting';

function ImPlotAxis_CanInitFit(self: PImPlotAxis): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_CanInitFit';

function ImPlotAxis_IsRangeLocked(self: PImPlotAxis): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_IsRangeLocked';

function ImPlotAxis_IsLockedMin(self: PImPlotAxis): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_IsLockedMin';

function ImPlotAxis_IsLockedMax(self: PImPlotAxis): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_IsLockedMax';

function ImPlotAxis_IsLocked(self: PImPlotAxis): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_IsLocked';

function ImPlotAxis_IsInputLockedMin(self: PImPlotAxis): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_IsInputLockedMin';

function ImPlotAxis_IsInputLockedMax(self: PImPlotAxis): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_IsInputLockedMax';

function ImPlotAxis_IsInputLocked(self: PImPlotAxis): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_IsInputLocked';

function ImPlotAxis_HasMenus(self: PImPlotAxis): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_HasMenus';

function ImPlotAxis_IsPanLocked(self: PImPlotAxis; increasing: Boolean): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_IsPanLocked';

procedure ImPlotAxis_PushLinks(self: PImPlotAxis); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_PushLinks';

procedure ImPlotAxis_PullLinks(self: PImPlotAxis); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAxis_PullLinks';

function ImPlotAlignmentData_ImPlotAlignmentData(): PImPlotAlignmentData; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAlignmentData_ImPlotAlignmentData';

procedure ImPlotAlignmentData_destroy(self: PImPlotAlignmentData); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAlignmentData_destroy';

procedure ImPlotAlignmentData_Begin(self: PImPlotAlignmentData); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAlignmentData_Begin';

procedure ImPlotAlignmentData_Update(self: PImPlotAlignmentData; pad_a: PSingle; pad_b: PSingle; delta_a: PSingle; delta_b: PSingle); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAlignmentData_Update';

procedure ImPlotAlignmentData_End(self: PImPlotAlignmentData); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAlignmentData_End';

procedure ImPlotAlignmentData_Reset(self: PImPlotAlignmentData); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotAlignmentData_Reset';

function ImPlotItem_ImPlotItem(): PImPlotItem; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotItem_ImPlotItem';

procedure ImPlotItem_destroy(self: PImPlotItem); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotItem_destroy';

function ImPlotLegend_ImPlotLegend(): PImPlotLegend; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotLegend_ImPlotLegend';

procedure ImPlotLegend_destroy(self: PImPlotLegend); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotLegend_destroy';

procedure ImPlotLegend_Reset(self: PImPlotLegend); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotLegend_Reset';

function ImPlotItemGroup_ImPlotItemGroup(): PImPlotItemGroup; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotItemGroup_ImPlotItemGroup';

procedure ImPlotItemGroup_destroy(self: PImPlotItemGroup); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotItemGroup_destroy';

function ImPlotItemGroup_GetItemCount(self: PImPlotItemGroup): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotItemGroup_GetItemCount';

function ImPlotItemGroup_GetItemID(self: PImPlotItemGroup; const label_id: PAnsiChar): ImGuiID; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotItemGroup_GetItemID';

function ImPlotItemGroup_GetItem_ID(self: PImPlotItemGroup; id: ImGuiID): PImPlotItem; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotItemGroup_GetItem_ID';

function ImPlotItemGroup_GetItem_Str(self: PImPlotItemGroup; const label_id: PAnsiChar): PImPlotItem; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotItemGroup_GetItem_Str';

function ImPlotItemGroup_GetOrAddItem(self: PImPlotItemGroup; id: ImGuiID): PImPlotItem; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotItemGroup_GetOrAddItem';

function ImPlotItemGroup_GetItemByIndex(self: PImPlotItemGroup; i: Integer): PImPlotItem; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotItemGroup_GetItemByIndex';

function ImPlotItemGroup_GetItemIndex(self: PImPlotItemGroup; item: PImPlotItem): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotItemGroup_GetItemIndex';

function ImPlotItemGroup_GetLegendCount(self: PImPlotItemGroup): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotItemGroup_GetLegendCount';

function ImPlotItemGroup_GetLegendItem(self: PImPlotItemGroup; i: Integer): PImPlotItem; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotItemGroup_GetLegendItem';

function ImPlotItemGroup_GetLegendLabel(self: PImPlotItemGroup; i: Integer): PAnsiChar; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotItemGroup_GetLegendLabel';

procedure ImPlotItemGroup_Reset(self: PImPlotItemGroup); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotItemGroup_Reset';

function ImPlotPlot_ImPlotPlot(): PImPlotPlot; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotPlot_ImPlotPlot';

procedure ImPlotPlot_destroy(self: PImPlotPlot); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotPlot_destroy';

function ImPlotPlot_IsInputLocked(self: PImPlotPlot): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotPlot_IsInputLocked';

procedure ImPlotPlot_ClearTextBuffer(self: PImPlotPlot); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotPlot_ClearTextBuffer';

procedure ImPlotPlot_SetTitle(self: PImPlotPlot; const title: PAnsiChar); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotPlot_SetTitle';

function ImPlotPlot_HasTitle(self: PImPlotPlot): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotPlot_HasTitle';

function ImPlotPlot_GetTitle(self: PImPlotPlot): PAnsiChar; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotPlot_GetTitle';

function ImPlotPlot_XAxis_Nil(self: PImPlotPlot; i: Integer): PImPlotAxis; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotPlot_XAxis_Nil';

function ImPlotPlot_XAxis__const(self: PImPlotPlot; i: Integer): PImPlotAxis; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotPlot_XAxis__const';

function ImPlotPlot_YAxis_Nil(self: PImPlotPlot; i: Integer): PImPlotAxis; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotPlot_YAxis_Nil';

function ImPlotPlot_YAxis__const(self: PImPlotPlot; i: Integer): PImPlotAxis; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotPlot_YAxis__const';

function ImPlotPlot_EnabledAxesX(self: PImPlotPlot): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotPlot_EnabledAxesX';

function ImPlotPlot_EnabledAxesY(self: PImPlotPlot): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotPlot_EnabledAxesY';

procedure ImPlotPlot_SetAxisLabel(self: PImPlotPlot; axis: PImPlotAxis; const label_: PAnsiChar); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotPlot_SetAxisLabel';

function ImPlotPlot_GetAxisLabel(self: PImPlotPlot; const axis: ImPlotAxis): PAnsiChar; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotPlot_GetAxisLabel';

function ImPlotSubplot_ImPlotSubplot(): PImPlotSubplot; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotSubplot_ImPlotSubplot';

procedure ImPlotSubplot_destroy(self: PImPlotSubplot); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotSubplot_destroy';

function ImPlotNextPlotData_ImPlotNextPlotData(): PImPlotNextPlotData; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotNextPlotData_ImPlotNextPlotData';

procedure ImPlotNextPlotData_destroy(self: PImPlotNextPlotData); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotNextPlotData_destroy';

procedure ImPlotNextPlotData_Reset(self: PImPlotNextPlotData); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotNextPlotData_Reset';

function ImPlotNextItemData_ImPlotNextItemData(): PImPlotNextItemData; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotNextItemData_ImPlotNextItemData';

procedure ImPlotNextItemData_destroy(self: PImPlotNextItemData); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotNextItemData_destroy';

procedure ImPlotNextItemData_Reset(self: PImPlotNextItemData); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlotNextItemData_Reset';

procedure ImPlot_Initialize(ctx: PImPlotContext); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_Initialize';

procedure ImPlot_ResetCtxForNextPlot(ctx: PImPlotContext); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ResetCtxForNextPlot';

procedure ImPlot_ResetCtxForNextAlignedPlots(ctx: PImPlotContext); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ResetCtxForNextAlignedPlots';

procedure ImPlot_ResetCtxForNextSubplot(ctx: PImPlotContext); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ResetCtxForNextSubplot';

function ImPlot_GetPlot(const title: PAnsiChar): PImPlotPlot; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_GetPlot';

function ImPlot_GetCurrentPlot(): PImPlotPlot; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_GetCurrentPlot';

procedure ImPlot_BustPlotCache(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_BustPlotCache';

procedure ImPlot_ShowPlotContextMenu(plot: PImPlotPlot); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ShowPlotContextMenu';

procedure ImPlot_SetupLock(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_SetupLock';

procedure ImPlot_SubplotNextCell(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_SubplotNextCell';

procedure ImPlot_ShowSubplotsContextMenu(subplot: PImPlotSubplot); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ShowSubplotsContextMenu';

function ImPlot_BeginItem(const label_id: PAnsiChar; flags: ImPlotItemFlags; recolor_from: ImPlotCol): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_BeginItem';

procedure ImPlot_EndItem(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_EndItem';

function ImPlot_RegisterOrGetItem(const label_id: PAnsiChar; flags: ImPlotItemFlags; just_created: PBoolean): PImPlotItem; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_RegisterOrGetItem';

function ImPlot_GetItem(const label_id: PAnsiChar): PImPlotItem; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_GetItem';

function ImPlot_GetCurrentItem(): PImPlotItem; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_GetCurrentItem';

procedure ImPlot_BustItemCache(); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_BustItemCache';

function ImPlot_AnyAxesInputLocked(axes: PImPlotAxis; count: Integer): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_AnyAxesInputLocked';

function ImPlot_AllAxesInputLocked(axes: PImPlotAxis; count: Integer): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_AllAxesInputLocked';

function ImPlot_AnyAxesHeld(axes: PImPlotAxis; count: Integer): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_AnyAxesHeld';

function ImPlot_AnyAxesHovered(axes: PImPlotAxis; count: Integer): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_AnyAxesHovered';

function ImPlot_FitThisFrame(): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_FitThisFrame';

procedure ImPlot_FitPointX(x: Double); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_FitPointX';

procedure ImPlot_FitPointY(y: Double); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_FitPointY';

procedure ImPlot_FitPoint(p: ImPlotPoint); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_FitPoint';

function ImPlot_RangesOverlap(r1: ImPlotRange; r2: ImPlotRange): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_RangesOverlap';

procedure ImPlot_ShowAxisContextMenu(axis: PImPlotAxis; equal_axis: PImPlotAxis; time_allowed: Boolean); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ShowAxisContextMenu';

procedure ImPlot_GetLocationPos(pOut: PImVec2; outer_rect: ImRect; inner_size: ImVec2; location: ImPlotLocation; pad: ImVec2); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_GetLocationPos';

procedure ImPlot_CalcLegendSize(pOut: PImVec2; items: PImPlotItemGroup; pad: ImVec2; spacing: ImVec2; vertical: Boolean); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_CalcLegendSize';

function ImPlot_ClampLegendRect(legend_rect: PImRect; outer_rect: ImRect; pad: ImVec2): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ClampLegendRect';

function ImPlot_ShowLegendEntries(items: PImPlotItemGroup; legend_bb: ImRect; interactable: Boolean; pad: ImVec2; spacing: ImVec2; vertical: Boolean; DrawList: PImDrawList): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ShowLegendEntries';

procedure ImPlot_ShowAltLegend(const title_id: PAnsiChar; vertical: Boolean; size: ImVec2; interactable: Boolean); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ShowAltLegend';

function ImPlot_ShowLegendContextMenu(legend: PImPlotLegend; visible: Boolean): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ShowLegendContextMenu';

procedure ImPlot_LabelAxisValue(const axis: ImPlotAxis; value: Double; buff: PAnsiChar; size: Integer; round: Boolean); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_LabelAxisValue';

function ImPlot_GetItemData(): PImPlotNextItemData; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_GetItemData';

function ImPlot_IsColorAuto_Vec4(col: ImVec4): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_IsColorAuto_Vec4';

function ImPlot_IsColorAuto_PlotCol(idx: ImPlotCol): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_IsColorAuto_PlotCol';

procedure ImPlot_GetAutoColor(pOut: PImVec4; idx: ImPlotCol); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_GetAutoColor';

procedure ImPlot_GetStyleColorVec4(pOut: PImVec4; idx: ImPlotCol); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_GetStyleColorVec4';

function ImPlot_GetStyleColorU32(idx: ImPlotCol): ImU32; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_GetStyleColorU32';

procedure ImPlot_AddTextVertical(DrawList: PImDrawList; pos: ImVec2; col: ImU32; const text_begin: PAnsiChar; const text_end: PAnsiChar); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_AddTextVertical';

procedure ImPlot_AddTextCentered(DrawList: PImDrawList; top_center: ImVec2; col: ImU32; const text_begin: PAnsiChar; const text_end: PAnsiChar); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_AddTextCentered';

procedure ImPlot_CalcTextSizeVertical(pOut: PImVec2; const text: PAnsiChar); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_CalcTextSizeVertical';

function ImPlot_CalcTextColor_Vec4(bg: ImVec4): ImU32; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_CalcTextColor_Vec4';

function ImPlot_CalcTextColor_U32(bg: ImU32): ImU32; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_CalcTextColor_U32';

function ImPlot_CalcHoverColor(col: ImU32): ImU32; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_CalcHoverColor';

procedure ImPlot_ClampLabelPos(pOut: PImVec2; pos: ImVec2; size: ImVec2; Min: ImVec2; Max: ImVec2); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ClampLabelPos';

function ImPlot_GetColormapColorU32(idx: Integer; cmap: ImPlotColormap): ImU32; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_GetColormapColorU32';

function ImPlot_NextColormapColorU32(): ImU32; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_NextColormapColorU32';

function ImPlot_SampleColormapU32(t: Single; cmap: ImPlotColormap): ImU32; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_SampleColormapU32';

procedure ImPlot_RenderColorBar(const colors: PImU32; size: Integer; DrawList: PImDrawList; bounds: ImRect; vert: Boolean; reversed: Boolean; continuous: Boolean); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_RenderColorBar';

function ImPlot_NiceNum(x: Double; round: Boolean): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_NiceNum';

function ImPlot_OrderOfMagnitude(val: Double): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_OrderOfMagnitude';

function ImPlot_OrderToPrecision(order: Integer): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_OrderToPrecision';

function ImPlot_Precision(val: Double): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_Precision';

function ImPlot_RoundTo(val: Double; prec: Integer): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_RoundTo';

procedure ImPlot_Intersection(pOut: PImVec2; a1: ImVec2; a2: ImVec2; b1: ImVec2; b2: ImVec2); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_Intersection';

procedure ImPlot_FillRange_Vector_Float_Ptr(buffer: PImVector_float; n: Integer; vmin: Single; vmax: Single); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_FillRange_Vector_Float_Ptr';

procedure ImPlot_FillRange_Vector_double_Ptr(buffer: PImVector_double; n: Integer; vmin: Double; vmax: Double); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_FillRange_Vector_double_Ptr';

procedure ImPlot_FillRange_Vector_S8_Ptr(buffer: PImVector_ImS8; n: Integer; vmin: ImS8; vmax: ImS8); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_FillRange_Vector_S8_Ptr';

procedure ImPlot_FillRange_Vector_U8_Ptr(buffer: PImVector_ImU8; n: Integer; vmin: ImU8; vmax: ImU8); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_FillRange_Vector_U8_Ptr';

procedure ImPlot_FillRange_Vector_S16_Ptr(buffer: PImVector_ImS16; n: Integer; vmin: ImS16; vmax: ImS16); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_FillRange_Vector_S16_Ptr';

procedure ImPlot_FillRange_Vector_U16_Ptr(buffer: PImVector_ImU16; n: Integer; vmin: ImU16; vmax: ImU16); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_FillRange_Vector_U16_Ptr';

procedure ImPlot_FillRange_Vector_S32_Ptr(buffer: PImVector_ImS32; n: Integer; vmin: ImS32; vmax: ImS32); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_FillRange_Vector_S32_Ptr';

procedure ImPlot_FillRange_Vector_U32_Ptr(buffer: PImVector_ImU32; n: Integer; vmin: ImU32; vmax: ImU32); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_FillRange_Vector_U32_Ptr';

procedure ImPlot_FillRange_Vector_S64_Ptr(buffer: PImVector_ImS64; n: Integer; vmin: ImS64; vmax: ImS64); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_FillRange_Vector_S64_Ptr';

procedure ImPlot_FillRange_Vector_U64_Ptr(buffer: PImVector_ImU64; n: Integer; vmin: ImU64; vmax: ImU64); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_FillRange_Vector_U64_Ptr';

procedure ImPlot_CalculateBins_FloatPtr(const values: PSingle; count: Integer; meth: ImPlotBin; range: ImPlotRange; bins_out: PInteger; width_out: PDouble); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_CalculateBins_FloatPtr';

procedure ImPlot_CalculateBins_doublePtr(const values: PDouble; count: Integer; meth: ImPlotBin; range: ImPlotRange; bins_out: PInteger; width_out: PDouble); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_CalculateBins_doublePtr';

procedure ImPlot_CalculateBins_S8Ptr(const values: PImS8; count: Integer; meth: ImPlotBin; range: ImPlotRange; bins_out: PInteger; width_out: PDouble); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_CalculateBins_S8Ptr';

procedure ImPlot_CalculateBins_U8Ptr(const values: PImU8; count: Integer; meth: ImPlotBin; range: ImPlotRange; bins_out: PInteger; width_out: PDouble); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_CalculateBins_U8Ptr';

procedure ImPlot_CalculateBins_S16Ptr(const values: PImS16; count: Integer; meth: ImPlotBin; range: ImPlotRange; bins_out: PInteger; width_out: PDouble); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_CalculateBins_S16Ptr';

procedure ImPlot_CalculateBins_U16Ptr(const values: PImU16; count: Integer; meth: ImPlotBin; range: ImPlotRange; bins_out: PInteger; width_out: PDouble); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_CalculateBins_U16Ptr';

procedure ImPlot_CalculateBins_S32Ptr(const values: PImS32; count: Integer; meth: ImPlotBin; range: ImPlotRange; bins_out: PInteger; width_out: PDouble); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_CalculateBins_S32Ptr';

procedure ImPlot_CalculateBins_U32Ptr(const values: PImU32; count: Integer; meth: ImPlotBin; range: ImPlotRange; bins_out: PInteger; width_out: PDouble); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_CalculateBins_U32Ptr';

procedure ImPlot_CalculateBins_S64Ptr(const values: PImS64; count: Integer; meth: ImPlotBin; range: ImPlotRange; bins_out: PInteger; width_out: PDouble); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_CalculateBins_S64Ptr';

procedure ImPlot_CalculateBins_U64Ptr(const values: PImU64; count: Integer; meth: ImPlotBin; range: ImPlotRange; bins_out: PInteger; width_out: PDouble); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_CalculateBins_U64Ptr';

function ImPlot_IsLeapYear(year: Integer): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_IsLeapYear';

function ImPlot_GetDaysInMonth(year: Integer; month: Integer): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_GetDaysInMonth';

procedure ImPlot_MkGmtTime(pOut: PImPlotTime; ptm: Ptm); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_MkGmtTime';

function ImPlot_GetGmtTime(t: ImPlotTime; ptm: Ptm): Ptm; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_GetGmtTime';

procedure ImPlot_MkLocTime(pOut: PImPlotTime; ptm: Ptm); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_MkLocTime';

function ImPlot_GetLocTime(t: ImPlotTime; ptm: Ptm): Ptm; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_GetLocTime';

procedure ImPlot_MakeTime(pOut: PImPlotTime; year: Integer; month: Integer; day: Integer; hour: Integer; min: Integer; sec: Integer; us: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_MakeTime';

function ImPlot_GetYear(t: ImPlotTime): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_GetYear';

procedure ImPlot_AddTime(pOut: PImPlotTime; t: ImPlotTime; unit_: ImPlotTimeUnit; count: Integer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_AddTime';

procedure ImPlot_FloorTime(pOut: PImPlotTime; t: ImPlotTime; unit_: ImPlotTimeUnit); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_FloorTime';

procedure ImPlot_CeilTime(pOut: PImPlotTime; t: ImPlotTime; unit_: ImPlotTimeUnit); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_CeilTime';

procedure ImPlot_RoundTime(pOut: PImPlotTime; t: ImPlotTime; unit_: ImPlotTimeUnit); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_RoundTime';

procedure ImPlot_CombineDateTime(pOut: PImPlotTime; date_part: ImPlotTime; time_part: ImPlotTime); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_CombineDateTime';

function ImPlot_FormatTime(t: ImPlotTime; buffer: PAnsiChar; size: Integer; fmt: ImPlotTimeFmt; use_24_hr_clk: Boolean): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_FormatTime';

function ImPlot_FormatDate(t: ImPlotTime; buffer: PAnsiChar; size: Integer; fmt: ImPlotDateFmt; use_iso_8601: Boolean): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_FormatDate';

function ImPlot_FormatDateTime(t: ImPlotTime; buffer: PAnsiChar; size: Integer; fmt: ImPlotDateTimeSpec): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_FormatDateTime';

function ImPlot_ShowDatePicker(const id: PAnsiChar; level: PInteger; t: PImPlotTime; const t1: PImPlotTime; const t2: PImPlotTime): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ShowDatePicker';

function ImPlot_ShowTimePicker(const id: PAnsiChar; t: PImPlotTime): Boolean; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ShowTimePicker';

function ImPlot_TransformForward_Log10(v: Double; noname1: Pointer): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_TransformForward_Log10';

function ImPlot_TransformInverse_Log10(v: Double; noname1: Pointer): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_TransformInverse_Log10';

function ImPlot_TransformForward_SymLog(v: Double; noname1: Pointer): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_TransformForward_SymLog';

function ImPlot_TransformInverse_SymLog(v: Double; noname1: Pointer): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_TransformInverse_SymLog';

function ImPlot_TransformForward_Logit(v: Double; noname1: Pointer): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_TransformForward_Logit';

function ImPlot_TransformInverse_Logit(v: Double; noname1: Pointer): Double; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_TransformInverse_Logit';

function ImPlot_Formatter_Default(value: Double; buff: PAnsiChar; size: Integer; data: Pointer): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_Formatter_Default';

function ImPlot_Formatter_Logit(value: Double; buff: PAnsiChar; size: Integer; noname1: Pointer): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_Formatter_Logit';

function ImPlot_Formatter_Time(noname1: Double; buff: PAnsiChar; size: Integer; data: Pointer): Integer; cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_Formatter_Time';

procedure ImPlot_Locator_Default(ticker: PImPlotTicker; range: ImPlotRange; pixels: Single; vertical: Boolean; formatter: ImPlotFormatter; formatter_data: Pointer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_Locator_Default';

procedure ImPlot_Locator_Time(ticker: PImPlotTicker; range: ImPlotRange; pixels: Single; vertical: Boolean; formatter: ImPlotFormatter; formatter_data: Pointer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_Locator_Time';

procedure ImPlot_Locator_Log10(ticker: PImPlotTicker; range: ImPlotRange; pixels: Single; vertical: Boolean; formatter: ImPlotFormatter; formatter_data: Pointer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_Locator_Log10';

procedure ImPlot_Locator_SymLog(ticker: PImPlotTicker; range: ImPlotRange; pixels: Single; vertical: Boolean; formatter: ImPlotFormatter; formatter_data: Pointer); cdecl;
  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_Locator_SymLog';

